Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
@@ -19,7 +19,6 @@ public class ContractApiImpl implements ContractApi {
|
||||
|
||||
@Override
|
||||
public List<ContractFormulaRespDTO> getFormulas(String contractPaperNumber) {
|
||||
System.out.println("contract feign" + contractPaperNumber);
|
||||
return List.of();
|
||||
return contractService.getFormulasByPaperNumber(contractPaperNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,6 +148,7 @@ public class ContractController implements BusinessControllerMarker {
|
||||
@PostMapping("/submit/erp")
|
||||
@Operation(summary = "提交ERP")
|
||||
@PreAuthorize("@ss.hasPermission('base:contract:erp')")
|
||||
public void submitErp() {
|
||||
public void submitErp(@RequestBody List<Long> ids) {
|
||||
contractService.submitErp(ids);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,18 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 品位等级价配置 Response VO")
|
||||
@Data
|
||||
public class GradeRespVO {
|
||||
|
||||
@Schema(description = "主键")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "配置主键")
|
||||
private Long parameterId;
|
||||
|
||||
@Schema(description = "条款主键")
|
||||
private Long formulaId;
|
||||
|
||||
@@ -36,28 +34,30 @@ public class GradeRespVO {
|
||||
@Schema(description = "品位下限")
|
||||
private BigDecimal gradeDown;
|
||||
|
||||
@Schema(description = "是否包含上限;包含则是大于等于,不包含则是大于")
|
||||
private String isInUp;
|
||||
@Schema(description = "区间方式(字典:STLM_RNG_WY)")
|
||||
private String rangeWay;
|
||||
|
||||
@Schema(description = "是否包含下限;包含则是小于等于,不包含则是小于")
|
||||
private String isInDown;
|
||||
|
||||
@Schema(description = "默认计价品位;计价方式为加时,默认为为下限,计价方式为减时,默认为为上限,可手动填写")
|
||||
@Schema(description = "默认计价品位")
|
||||
private BigDecimal gradeDefault;
|
||||
|
||||
@Schema(description = "系数;计价类型为阶梯价使用,标识没上升多少系数进行加款还是减款")
|
||||
@Schema(description = "系数值")
|
||||
private BigDecimal settlementCoefficient;
|
||||
|
||||
@Schema(description = "不足系数值按比例计算")
|
||||
@Schema(description = "是否比例计算(字典:ERP_CTRT_YN)")
|
||||
private String useCoefficient;
|
||||
|
||||
@Schema(description = "计价类型")
|
||||
@Schema(description = "计价类型(字典:STLM_GRD_TP)")
|
||||
private String priceType;
|
||||
|
||||
@Schema(description = "是否省内")
|
||||
@NotEmpty(message = "是否省内不能为空")
|
||||
@Schema(description = "是否省内(字典:ERP_CTRT_YN)")
|
||||
private String inState;
|
||||
|
||||
@Schema(description = "等级单价")
|
||||
@Schema(description = "等级单价", example = "3565")
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "数据项类型(字典:GRD_CFG_TP)")
|
||||
private String configType;
|
||||
}
|
||||
|
||||
@@ -1,21 +1,18 @@
|
||||
package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Schema(description = "管理后台 - 品位等级价配置新增/修改 Request VO")
|
||||
@Data
|
||||
public class GradeSaveReqVO {
|
||||
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15414")
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6211")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "配置主键", example = "16734")
|
||||
private Long parameterId;
|
||||
|
||||
@Schema(description = "条款主键", example = "15344")
|
||||
@Schema(description = "条款主键", example = "2426")
|
||||
private Long formulaId;
|
||||
|
||||
@Schema(description = "金属元素编码")
|
||||
@@ -24,7 +21,7 @@ public class GradeSaveReqVO {
|
||||
@Schema(description = "金属元素缩写")
|
||||
private String elementAbbreviation;
|
||||
|
||||
@Schema(description = "金属元素名称", example = "芋艿")
|
||||
@Schema(description = "金属元素名称", example = "王五")
|
||||
private String elementName;
|
||||
|
||||
@Schema(description = "品位单位")
|
||||
@@ -36,28 +33,27 @@ public class GradeSaveReqVO {
|
||||
@Schema(description = "品位下限")
|
||||
private BigDecimal gradeDown;
|
||||
|
||||
@Schema(description = "是否包含上限;包含则是大于等于,不包含则是大于")
|
||||
private String isInUp;
|
||||
@Schema(description = "区间方式(字典:STLM_RNG_WY)")
|
||||
private String rangeWay;
|
||||
|
||||
@Schema(description = "是否包含下限;包含则是小于等于,不包含则是小于")
|
||||
private String isInDown;
|
||||
|
||||
@Schema(description = "默认计价品位;计价方式为加时,默认为为下限,计价方式为减时,默认为为上限,可手动填写")
|
||||
@Schema(description = "默认计价品位")
|
||||
private BigDecimal gradeDefault;
|
||||
|
||||
@Schema(description = "系数;计价类型为阶梯价使用,标识没上升多少系数进行加款还是减款")
|
||||
@Schema(description = "系数值")
|
||||
private BigDecimal settlementCoefficient;
|
||||
|
||||
@Schema(description = "不足系数值按比例计算")
|
||||
@Schema(description = "是否比例计算(字典:ERP_CTRT_YN)")
|
||||
private String useCoefficient;
|
||||
|
||||
@Schema(description = "计价类型", example = "2")
|
||||
@Schema(description = "计价类型(字典:STLM_GRD_TP)", example = "2")
|
||||
private String priceType;
|
||||
|
||||
@Schema(description = "是否省内", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "是否省内不能为空")
|
||||
@Schema(description = "是否省内(字典:ERP_CTRT_YN)")
|
||||
private String inState;
|
||||
|
||||
@Schema(description = "等级单价", example = "26237")
|
||||
@Schema(description = "等级单价", example = "3565")
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
@Schema(description = "数据项类型(字典:GRD_CFG_TP)", example = "1")
|
||||
private String configType;
|
||||
}
|
||||
@@ -12,9 +12,6 @@ public class PriceRespVO {
|
||||
@Schema(description = "主键")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "配置主键")
|
||||
private Long parameterId;
|
||||
|
||||
@Schema(description = "条款主键")
|
||||
private Long formulaId;
|
||||
|
||||
|
||||
@@ -12,9 +12,6 @@ public class PriceSaveReqVO {
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "13654")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "配置主键", example = "1590")
|
||||
private Long parameterId;
|
||||
|
||||
@Schema(description = "条款主键", example = "24677")
|
||||
private Long formulaId;
|
||||
|
||||
|
||||
@@ -29,11 +29,6 @@ public class ContractGradeDO extends BusinessBaseDO {
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
/**
|
||||
* 配置主键
|
||||
*/
|
||||
@TableField("PRM_ID")
|
||||
private Long parameterId;
|
||||
/**
|
||||
* 条款主键
|
||||
*/
|
||||
@@ -70,37 +65,32 @@ public class ContractGradeDO extends BusinessBaseDO {
|
||||
@TableField("GRD_DOWN")
|
||||
private BigDecimal gradeDown;
|
||||
/**
|
||||
* 是否包含上限;包含则是大于等于,不包含则是大于
|
||||
* 区间方式(字典:STLM_RNG_WY)
|
||||
*/
|
||||
@TableField("IS_IN_UP")
|
||||
private String isInUp;
|
||||
@TableField("RNG_WY")
|
||||
private String rangeWay;
|
||||
/**
|
||||
* 是否包含下限;包含则是小于等于,不包含则是小于
|
||||
*/
|
||||
@TableField("IS_IN_DOWN")
|
||||
private String isInDown;
|
||||
/**
|
||||
* 默认计价品位;计价方式为加时,默认为为下限,计价方式为减时,默认为为上限,可手动填写
|
||||
* 默认计价品位
|
||||
*/
|
||||
@TableField("GRD_DFT")
|
||||
private BigDecimal gradeDefault;
|
||||
/**
|
||||
* 系数;计价类型为阶梯价使用,标识没上升多少系数进行加款还是减款
|
||||
* 系数值
|
||||
*/
|
||||
@TableField("STLM_COEF")
|
||||
private BigDecimal settlementCoefficient;
|
||||
/**
|
||||
* 不足系数值按比例计算
|
||||
* 是否比例计算(字典:ERP_CTRT_YN)
|
||||
*/
|
||||
@TableField("USE_COEF")
|
||||
private String useCoefficient;
|
||||
/**
|
||||
* 计价类型
|
||||
* 计价类型(字典:STLM_GRD_TP)
|
||||
*/
|
||||
@TableField("PRC_TP")
|
||||
private String priceType;
|
||||
/**
|
||||
* 是否省内
|
||||
* 是否省内(字典:ERP_CTRT_YN)
|
||||
*/
|
||||
@TableField("IN_STA")
|
||||
private String inState;
|
||||
@@ -109,4 +99,9 @@ public class ContractGradeDO extends BusinessBaseDO {
|
||||
*/
|
||||
@TableField("UPRC")
|
||||
private BigDecimal unitPrice;
|
||||
/**
|
||||
* 数据项类型(字典:GRD_CFG_TP)
|
||||
*/
|
||||
@TableField("CFG_TP")
|
||||
private String configType;
|
||||
}
|
||||
@@ -30,11 +30,6 @@ public class ContractPriceDO extends BusinessBaseDO {
|
||||
*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
/**
|
||||
* 配置主键
|
||||
*/
|
||||
@TableField("PRM_ID")
|
||||
private Long parameterId;
|
||||
/**
|
||||
* 条款主键
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.zt.plat.module.contractorder.service.contract;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.module.contractorder.api.dto.ContractFormulaRespDTO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.*;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
|
||||
import jakarta.validation.Valid;
|
||||
@@ -85,4 +86,20 @@ public interface ContractService {
|
||||
* @return 结算公式列表
|
||||
*/
|
||||
List<FormulaRespVO> getFormulas(FormulasQueryReqVO queryReqVO);
|
||||
|
||||
/**
|
||||
* 通过合同编号获取对应的结算条款数据
|
||||
*
|
||||
* @param contractPaperNumber 合同编号
|
||||
* @return 结算条款数据
|
||||
*/
|
||||
List<ContractFormulaRespDTO> getFormulasByPaperNumber(String contractPaperNumber);
|
||||
|
||||
/**
|
||||
* 提交ERP
|
||||
*
|
||||
* @param ids 合同ID集合
|
||||
* @return
|
||||
*/
|
||||
void submitErp(List<Long> ids);
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ 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.dto.BpmProcessInstanceCreateReqDTO;
|
||||
import com.zt.plat.module.bpm.api.task.dto.BpmTaskRespDTO;
|
||||
import com.zt.plat.module.contractorder.api.dto.*;
|
||||
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.mysql.contract.*;
|
||||
@@ -24,8 +25,8 @@ import com.zt.plat.module.contractorder.enums.ApiConstants;
|
||||
import com.zt.plat.module.contractorder.enums.DateConstants;
|
||||
import com.zt.plat.module.contractorder.enums.ProcessConstants;
|
||||
import com.zt.plat.module.contractorder.enums.TableFieldConstants;
|
||||
import com.zt.plat.module.contractorder.enums.contract.ContractStatusEnum;
|
||||
import com.zt.plat.module.contractorder.enums.contract.ErpCtrtYesNoEnum;
|
||||
import com.zt.plat.module.contractorder.enums.contract.DictEnum;
|
||||
import com.zt.plat.module.erp.dal.dataobject.erp.ErpContractDO;
|
||||
import com.zt.plat.module.erp.service.erp.ErpCompanyService;
|
||||
import com.zt.plat.module.system.api.user.AdminUserApi;
|
||||
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
|
||||
@@ -133,7 +134,7 @@ public class ContractServiceImpl implements ContractService {
|
||||
// 合同主信息
|
||||
ContractMainDO contractMainDO = BeanUtils.toBean(reqVO, ContractMainDO.class);
|
||||
// 合同状态保存为草稿
|
||||
contractMainDO.setStatus(ContractStatusEnum.DRAFT.getCode());
|
||||
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_DRAFT.getCode());
|
||||
// 生成系统合同编号
|
||||
contractMainDO.setSystemContractNumber(generateSystemContractNumber(reqVO.getCategory()));
|
||||
|
||||
@@ -399,14 +400,14 @@ public class ContractServiceImpl implements ContractService {
|
||||
}
|
||||
|
||||
// 合同状态校验
|
||||
if (ContractStatusEnum.DELETED.getCode().equals(oldContractMainDO.getStatus())
|
||||
|| ContractStatusEnum.ARCHIVED.getCode().equals(oldContractMainDO.getStatus())
|
||||
|| ContractStatusEnum.TERMINATED.getCode().equals(oldContractMainDO.getStatus())
|
||||
|| ContractStatusEnum.IN_PROGRESS.getCode().equals(oldContractMainDO.getStatus())
|
||||
|| ContractStatusEnum.UNDER_REVIEW.getCode().equals(oldContractMainDO.getStatus())) {
|
||||
if (DictEnum.BSE_CTRT_STS_DELETED.getCode().equals(oldContractMainDO.getStatus())
|
||||
|| DictEnum.BSE_CTRT_STS_ARCHIVED.getCode().equals(oldContractMainDO.getStatus())
|
||||
|| DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(oldContractMainDO.getStatus())
|
||||
|| DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode().equals(oldContractMainDO.getStatus())
|
||||
|| DictEnum.BSE_CTRT_STS_UNDER_REVIEW.getCode().equals(oldContractMainDO.getStatus())) {
|
||||
|
||||
throw exception(CONTRACT_STATUS_NOT_UPDATE,
|
||||
ContractStatusEnum.valueOf(oldContractMainDO.getStatus()).getLabel());
|
||||
DictEnum.valueOf(oldContractMainDO.getStatus()).getLabel());
|
||||
}
|
||||
|
||||
// 请求更新的合同信息
|
||||
@@ -605,14 +606,14 @@ public class ContractServiceImpl implements ContractService {
|
||||
}
|
||||
|
||||
// 合同状态校验
|
||||
if (ContractStatusEnum.UNDER_REVIEW.getCode().equals(contractMainDO.getStatus())
|
||||
|| ContractStatusEnum.IN_PROGRESS.getCode().equals(contractMainDO.getStatus())
|
||||
|| ContractStatusEnum.TERMINATED.getCode().equals(contractMainDO.getStatus())
|
||||
|| ContractStatusEnum.ARCHIVED.getCode().equals(contractMainDO.getStatus())
|
||||
|| ContractStatusEnum.DELETED.getCode().equals(contractMainDO.getStatus())) {
|
||||
if (DictEnum.BSE_CTRT_STS_UNDER_REVIEW.getCode().equals(contractMainDO.getStatus())
|
||||
|| DictEnum.BSE_CTRT_STS_IN_PROGRESS.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_SUBMIT_APPROVAL,
|
||||
ContractStatusEnum.valueOf(contractMainDO.getStatus()).getLabel());
|
||||
DictEnum.valueOf(contractMainDO.getStatus()).getLabel());
|
||||
}
|
||||
|
||||
// 合同内容校验
|
||||
@@ -643,7 +644,7 @@ public class ContractServiceImpl implements ContractService {
|
||||
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);
|
||||
contractMainDO.setTaskNodeId(undoTask.getId());
|
||||
}
|
||||
contractMainDO.setStatus(ContractStatusEnum.UNDER_REVIEW.getCode());
|
||||
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_UNDER_REVIEW.getCode());
|
||||
contractMainMapper.updateById(contractMainDO);
|
||||
return "提交审批成功";
|
||||
}
|
||||
@@ -670,20 +671,27 @@ public class ContractServiceImpl implements ContractService {
|
||||
}
|
||||
|
||||
// 合同状态校验
|
||||
if (ContractStatusEnum.DRAFT.getCode().equals(contractMainDO.getStatus())
|
||||
|| ContractStatusEnum.IN_PROGRESS.getCode().equals(contractMainDO.getStatus())
|
||||
|| ContractStatusEnum.REJECTED.getCode().equals(contractMainDO.getStatus())
|
||||
|| ContractStatusEnum.TERMINATED.getCode().equals(contractMainDO.getStatus())
|
||||
|| ContractStatusEnum.ARCHIVED.getCode().equals(contractMainDO.getStatus())
|
||||
|| ContractStatusEnum.DELETED.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_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,
|
||||
ContractStatusEnum.valueOf(contractMainDO.getStatus()).getLabel());
|
||||
DictEnum.valueOf(contractMainDO.getStatus()).getLabel());
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取合同ID集合
|
||||
*
|
||||
* @param contractName 合同名称
|
||||
* @param contractPaperNumber 合同编号
|
||||
* @return 合同ID集合
|
||||
*/
|
||||
private List<Long> getContractIds(String contractName, String contractPaperNumber) {
|
||||
List<Long> contractIds = new ArrayList<>();
|
||||
List<ContractMainDO> contractMainDOS = contractMainMapper.selectList(new LambdaQueryWrapperX<ContractMainDO>()
|
||||
@@ -727,6 +735,169 @@ public class ContractServiceImpl implements ContractService {
|
||||
return contractFormulaMapper.selectFormulas(contractIds, queryReqVO.getMaterialName(), queryReqVO.getElementName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ContractFormulaRespDTO> getFormulasByPaperNumber(String contractPaperNumber) {
|
||||
|
||||
// 通过合同编号查询合同信息
|
||||
ContractMainDO contractMainDO = contractMainMapper
|
||||
.selectOne(TableFieldConstants.BSE_CTRT_MAIN_CTRT_PPR_NUM, contractPaperNumber);
|
||||
|
||||
// 合同不存在
|
||||
if (contractMainDO == null) {
|
||||
throw exception(CONTRACT_NOT_EXISTS);
|
||||
}
|
||||
|
||||
// 合同ID
|
||||
Long contractId = contractMainDO.getId();
|
||||
|
||||
// 查询并设置价款结算条款
|
||||
List<ContractFormulaRespDTO> formulas = new ArrayList<>();
|
||||
List<ContractFormulaDO> formulaDOS = contractFormulaMapper
|
||||
.selectList(TableFieldConstants.BSE_CTRT_FMU_CTRT_ID, contractId);
|
||||
if (formulaDOS != null && !formulaDOS.isEmpty()) {
|
||||
formulas = BeanUtils.toBean(formulaDOS, ContractFormulaRespDTO.class);
|
||||
|
||||
formulas.forEach(formula -> {
|
||||
|
||||
// 查询并设置基础系数配置
|
||||
List<ContractCoefficientDO> coefficientDOS = contractCoefficientMapper
|
||||
.selectList(TableFieldConstants.BSE_CTRT_COEF_FMU_ID, formula.getId());
|
||||
if (coefficientDOS != null && !coefficientDOS.isEmpty()) {
|
||||
formula.setCoefficients(BeanUtils.toBean(coefficientDOS, ContractCoefficientRespDTO.class));
|
||||
}
|
||||
// 查询并设置品位等级价配置
|
||||
List<ContractGradeDO> gradeDOS = contractGradeMapper
|
||||
.selectList(TableFieldConstants.BSE_CTRT_GRD_FMU_ID, formula.getId());
|
||||
if (gradeDOS != null && !gradeDOS.isEmpty()) {
|
||||
formula.setGrades(BeanUtils.toBean(gradeDOS, ContractGradeRespDTO.class));
|
||||
}
|
||||
// 查询并设置调整价配置
|
||||
List<ContractDeductDO> deductDOS = contractDeductMapper
|
||||
.selectList(TableFieldConstants.BSE_CTRT_DDCT_FMU_ID, formula.getId());
|
||||
if (deductDOS != null && !deductDOS.isEmpty()) {
|
||||
formula.setDeducts(BeanUtils.toBean(deductDOS, ContractDeductRespDTO.class));
|
||||
}
|
||||
// 查询并设置市场价配置
|
||||
List<ContractPriceDO> priceDOS = contractPriceMapper
|
||||
.selectList(TableFieldConstants.BSE_CTRT_PRC_FMU_ID, formula.getId());
|
||||
if (priceDOS != null && !priceDOS.isEmpty()) {
|
||||
formula.setPrices(BeanUtils.toBean(priceDOS, ContractPriceRespDTO.class));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return formulas;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void submitErp(List<Long> ids) {
|
||||
|
||||
// 遍历合同ID集合
|
||||
ids.forEach(id -> {
|
||||
|
||||
// 查询合同信息
|
||||
ContractMainDO contractMainDO = contractMainMapper.selectById(id);
|
||||
|
||||
if (contractMainDO != null) {
|
||||
|
||||
// 生成ERP合同映射表
|
||||
ErpContractDO erpContractDO = new ErpContractDO();
|
||||
// 合同主信息表主键:BSE_CTRT_MAIN
|
||||
erpContractDO.setContractMainId(id);
|
||||
// 操作标识:OPTN_ID TODO
|
||||
/*
|
||||
1、先调用009ERP接口查询合同信息
|
||||
2、如果009接口返回值中“合同编号”字段存在值,并且与传入的相同,则OPTN_ID值为“1”
|
||||
3、如果009接口返回值中“合同编号”字段不存在值,根据合同主键查询映射表中是否存在没有删除的数据,如果有,值为“1”,如果没有,值为“0”
|
||||
*/
|
||||
// 合同编号:CTRT_PPR_NUM
|
||||
erpContractDO.setContractPaperNumber(contractMainDO.getContractPaperNumber());
|
||||
// 合同名称:CTRT_NAME
|
||||
erpContractDO.setContractName(contractMainDO.getContractName());
|
||||
// 合同类型编号:CTRT_TP_NUM
|
||||
erpContractDO.setContractTypeNumber(contractMainDO.getConstructionTypeNumber());
|
||||
// 合同类型名称:CTRT_TP_NAME
|
||||
erpContractDO.setContractTypeName(contractMainDO.getConstructionTypeName());
|
||||
// 合同类别:CTRT_CTGR
|
||||
erpContractDO.setContractCategory(contractMainDO.getCategory());
|
||||
// 是否虚拟合同:IS_VRTL_CTRT
|
||||
erpContractDO.setIsVirtualContract(contractMainDO.getContractVirtual());
|
||||
// 客商编号:SPLR_NUM 根据合同主表的收支方向判断,如果为“支出”,值为“ERP乙方公司编码”,反之为“ERP甲方公司编码”
|
||||
// erpContractDO.setSupplierNumber();
|
||||
// 客商名称:SPLR_NAME 根据合同主表的收支方向判断,如果为“支出”,值为“ERP乙方公司名称”,反之为“ERP甲方公司名称”
|
||||
// erpContractDO.setSupplierName();
|
||||
// 代理方:AGT
|
||||
erpContractDO.setAgent(contractMainDO.getAgent());
|
||||
// 合同实施主体编号:CTRT_IMPL_NUM 根据合同主表的收支方向判断,如果为“支出”,值为“ERP甲方公司编码”,反之为“ERP乙方公司编码”
|
||||
// erpContractDO.setContractImplementNumber();
|
||||
// 合同签订主体编号:CTRT_SGN_NUM 根据合同主表的收支方向判断,如果为“支出”,值为“ERP甲方公司名称”,反之为“ERP乙方公司名称”
|
||||
// erpContractDO.setContractSignNumber();
|
||||
// 合同签订日期:SGN_DT
|
||||
if (contractMainDO.getSignDate() != null) {
|
||||
erpContractDO.setSignDate(contractMainDO.getSignDate().toLocalDate());
|
||||
}
|
||||
// 合同起始日期:STRT_DT
|
||||
if (contractMainDO.getStartDate() != null) {
|
||||
erpContractDO.setStartDate(contractMainDO.getStartDate().toLocalDate());
|
||||
}
|
||||
// 合同终止日期:STOP_DT
|
||||
if (contractMainDO.getEndDate() != null) {
|
||||
erpContractDO.setStopDate(contractMainDO.getEndDate().toLocalDate());
|
||||
}
|
||||
// 币种编号:CUR
|
||||
erpContractDO.setCurrency(contractMainDO.getCurrency());
|
||||
// 合同总金额(原币-含税):SRC_AMT
|
||||
erpContractDO.setSourceAmount(contractMainDO.getCooAmount());
|
||||
// 合同总金额(本位币-含税):BSC_AMT
|
||||
erpContractDO.setBasicAmount(contractMainDO.getBasicAmount());
|
||||
// 变更后合同总金额(原币-含税):CHG_SRC_AMT
|
||||
erpContractDO.setChangeSourceAmount(contractMainDO.getChangeCooAmount());
|
||||
// 变更后合同总金额(本位币-含税):CHG_BSC_AMT
|
||||
erpContractDO.setChangeBasicAmount(contractMainDO.getChangeBasicAmount());
|
||||
// 合同状态编号:STS_NUM 参照060接口
|
||||
// erpContractDO.setStatusNumber();
|
||||
// 合同状态名称:STS_NAME 参照060接口
|
||||
// erpContractDO.setStatusName();
|
||||
// 是否有预付款:IS_PPYM
|
||||
erpContractDO.setIsPrepayment(contractMainDO.getHasPrepayment());
|
||||
// 预付款比例:PPYM_RTIO
|
||||
erpContractDO.setPrepaymentRatio(contractMainDO.getPrepaymentRatio());
|
||||
// 预付款金额:PPYM_AMT
|
||||
erpContractDO.setPrepaymentAmount(contractMainDO.getPrepaymentAmount());
|
||||
// 履约保证金-变更前(原币):SRC_BFR_BND
|
||||
erpContractDO.setSourceBeforeBond(contractMainDO.getChangeCooAmountDeposit());
|
||||
// 履约保证金-变更前(本位币):BSC_BFR_BND
|
||||
erpContractDO.setBasicBeforeBond(contractMainDO.getChangeBasicAmountDeposit());
|
||||
// 履约保证金-变更后(原币):SRC_AFT_BND
|
||||
erpContractDO.setSourceAfterBond(contractMainDO.getChangeCooAmountDeposit());
|
||||
// 履约保证金-变更后(本位币):BSC_AFT_BND
|
||||
erpContractDO.setBasicAfterBond(contractMainDO.getChangeBasicAmountDeposit());
|
||||
// 是否含质保金:IS_QUA_AMT
|
||||
erpContractDO.setIsQualityassuranceAmount(contractMainDO.getHasQualityAmount());
|
||||
// 质保金比例:QUA_RTIO
|
||||
erpContractDO.setQualityassuranceRatio(contractMainDO.getQualityRatio());
|
||||
// 质保金金额:QUA_AMT
|
||||
erpContractDO.setQualityassuranceAmount(contractMainDO.getQualityAmount());
|
||||
// 是否内部企业:IS_INTL
|
||||
erpContractDO.setIsInternal(contractMainDO.getIsInternal());
|
||||
// 收支性质:NTR
|
||||
erpContractDO.setNature(contractMainDO.getDirection());
|
||||
// 备注信息:RMK
|
||||
erpContractDO.setRemark(contractMainDO.getRemark());
|
||||
// 是否框架合同:IS_FMWK
|
||||
erpContractDO.setIsFramework(contractMainDO.getIsFramework());
|
||||
// 境内/境外:IS_DOM
|
||||
erpContractDO.setIsDomestic(contractMainDO.getIsDomestic());
|
||||
// 达到收款条件金额:PYEE_CND_AMT
|
||||
erpContractDO.setPayeeConditionAmount(contractMainDO.getPayeeConditionAmount());
|
||||
// 建筑服务发生地:ARCH_SVC_PLCE
|
||||
erpContractDO.setArchitectureServicePlace(contractMainDO.getArchitectureServicePlace());
|
||||
|
||||
// 调用ERP模块
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验合同内容
|
||||
*
|
||||
@@ -818,7 +989,7 @@ public class ContractServiceImpl implements ContractService {
|
||||
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_HS_DPST_LABEL);
|
||||
}
|
||||
// 是否有履约保证金为是的情况
|
||||
if (ErpCtrtYesNoEnum.YES.getCode().equals(contract.getHasDeposit())) {
|
||||
if (DictEnum.ERP_CTRT_YN_YES.getCode().equals(contract.getHasDeposit())) {
|
||||
// 原币履约保证金不能为空
|
||||
if (contract.getCooAmountDeposit() == null) {
|
||||
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_COO_AMT_DPST_LABEL);
|
||||
@@ -833,7 +1004,7 @@ public class ContractServiceImpl implements ContractService {
|
||||
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_HS_PPYM_LABEL);
|
||||
}
|
||||
// 是否有预付款为是的情况
|
||||
if (ErpCtrtYesNoEnum.YES.getCode().equals(contract.getHasPrepayment())) {
|
||||
if (DictEnum.ERP_CTRT_YN_YES.getCode().equals(contract.getHasPrepayment())) {
|
||||
// 预付款比例不能为空
|
||||
if (contract.getPrepaymentRatio() == null) {
|
||||
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_PPYM_RTIO_LABEL);
|
||||
@@ -848,7 +1019,7 @@ public class ContractServiceImpl implements ContractService {
|
||||
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_HS_QLT_AMT_LABEL);
|
||||
}
|
||||
// 是否有质保金为是的情况
|
||||
if (ErpCtrtYesNoEnum.YES.getCode().equals(contract.getHasPrepayment())) {
|
||||
if (DictEnum.ERP_CTRT_YN_YES.getCode().equals(contract.getHasPrepayment())) {
|
||||
// 质保金比例不能为空
|
||||
if (contract.getQualityRatio() == null) {
|
||||
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_QLT_RTIO_LABEL);
|
||||
|
||||
Reference in New Issue
Block a user