合同数据结构修改、合同审核接口部分代码
This commit is contained in:
@@ -17,7 +17,8 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode CONTRACT_PAPER_NUMBER_EXISTS = new ErrorCode(1_027_000_002, "合同编号已存在");
|
ErrorCode CONTRACT_PAPER_NUMBER_EXISTS = new ErrorCode(1_027_000_002, "合同编号已存在");
|
||||||
ErrorCode CONTRACT_NOT_EXISTS = new ErrorCode(1_027_000_003, "合同不存在");
|
ErrorCode CONTRACT_NOT_EXISTS = new ErrorCode(1_027_000_003, "合同不存在");
|
||||||
ErrorCode CONTRACT_ID_NOT_EXISTS = new ErrorCode(1_027_000_004, "合同主键为空");
|
ErrorCode CONTRACT_ID_NOT_EXISTS = new ErrorCode(1_027_000_004, "合同主键为空");
|
||||||
ErrorCode CONTRACT_STATUS_NOT_UPDATE = new ErrorCode(1_027_000_005, "{}合同不允许修改");
|
ErrorCode CONTRACT_STATUS_NOT_UPDATE = new ErrorCode(1_027_000_005, "{}状态合同不允许修改");
|
||||||
ErrorCode CONTRACT_DATA_NOT_EXISTS = new ErrorCode(1_027_000_006, "{}不存在");
|
ErrorCode CONTRACT_DATA_NOT_EXISTS = new ErrorCode(1_027_000_006, "{}不存在");
|
||||||
ErrorCode CONTRACT_STATUS_NOT_SUBMIT_APPROVAL = new ErrorCode(1_027_000_005, "{}合同不允许提交审核");
|
ErrorCode CONTRACT_STATUS_NOT_SUBMIT_APPROVAL = new ErrorCode(1_027_000_007, "{}状态合同不允许提交审核");
|
||||||
|
ErrorCode CONTRACT_STATUS_NOT_APPROVAL = new ErrorCode(1_027_000_008, "{}状态合同不允许审核");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,8 +99,8 @@ public class TableFieldConstants {
|
|||||||
public static final String BSE_CTRT_PLN_CTRT_DTL_ID = "CTRT_DTL_ID";
|
public static final String BSE_CTRT_PLN_CTRT_DTL_ID = "CTRT_DTL_ID";
|
||||||
|
|
||||||
/* 价款结算条款表 */
|
/* 价款结算条款表 */
|
||||||
// 合同明细主键
|
// 合同主键
|
||||||
public static final String BSE_CTRT_FMU_CTRT_DTL_ID = "CTRT_DTL_ID";
|
public static final String BSE_CTRT_FMU_CTRT_ID = "CTRT_ID";
|
||||||
|
|
||||||
/* 基础系数配置表 */
|
/* 基础系数配置表 */
|
||||||
// 条款主键
|
// 条款主键
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package com.zt.plat.module.contractorder.enums.contract;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合同审核结果
|
||||||
|
*/
|
||||||
|
public enum AuditResultEnum {
|
||||||
|
/**
|
||||||
|
* 合同状态-草稿
|
||||||
|
*/
|
||||||
|
PASS("通过","PASS", null),
|
||||||
|
/**
|
||||||
|
* 合同状态-正在审核
|
||||||
|
*/
|
||||||
|
REJECT("驳回","REJECT",null);
|
||||||
|
|
||||||
|
AuditResultEnum(String label, String code, String remark) {
|
||||||
|
this.label = label;
|
||||||
|
this.code = code;
|
||||||
|
this.remark = remark;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标签
|
||||||
|
*/
|
||||||
|
private final String label;
|
||||||
|
/**
|
||||||
|
* 编码
|
||||||
|
*/
|
||||||
|
private final String code;
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private final String remark;
|
||||||
|
|
||||||
|
public String getLabel() {
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRemark() {
|
||||||
|
return remark;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,10 +5,7 @@ import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
|
|||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractPageReqVO;
|
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.*;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractRespVO;
|
|
||||||
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractSaveReqVO;
|
|
||||||
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractViewRespVO;
|
|
||||||
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
|
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
|
||||||
import com.zt.plat.module.contractorder.service.contract.ContractService;
|
import com.zt.plat.module.contractorder.service.contract.ContractService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
@@ -109,6 +106,14 @@ public class ContractController implements BusinessControllerMarker {
|
|||||||
return success(contractService.submitApproval(id));
|
return success(contractService.submitApproval(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
@PostMapping("/approval")
|
||||||
|
@Operation(summary = "合同审批")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:contract:approval')")
|
||||||
|
public CommonResult<String> approval(@Valid @RequestBody ContractApprovalReqVO reqVO) {
|
||||||
|
return success(contractService.approval(reqVO));
|
||||||
|
}
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
@PostMapping("/view/approval")
|
@PostMapping("/view/approval")
|
||||||
@Operation(summary = "查看审批")
|
@Operation(summary = "查看审批")
|
||||||
@@ -117,9 +122,9 @@ public class ContractController implements BusinessControllerMarker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
@PostMapping("/submit/ERP")
|
@PostMapping("/submit/erp")
|
||||||
@Operation(summary = "提交ERP")
|
@Operation(summary = "提交ERP")
|
||||||
@PreAuthorize("@ss.hasPermission('system:contract:erp')")
|
@PreAuthorize("@ss.hasPermission('system:contract:erp')")
|
||||||
public void submitERP() {
|
public void submitErp() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package com.zt.plat.module.contractorder.controller.admin.contract.vo.contract;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 合同审核请求对象 Request VO")
|
||||||
|
@Data
|
||||||
|
public class ContractApprovalReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "合同主键ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "合同主键ID不能为空")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "审核结果(通过:PASS,驳回:REJECT)", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotBlank(message = "审核结果不能为空")
|
||||||
|
private String auditResult;
|
||||||
|
|
||||||
|
@Schema(description = "审批意见", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotBlank(message = "审核意见不能为空")
|
||||||
|
private String reviewOpinion;
|
||||||
|
}
|
||||||
@@ -42,7 +42,4 @@ public class ContractDetailSaveReqVO {
|
|||||||
|
|
||||||
// 交货计划
|
// 交货计划
|
||||||
private List<ContractPlanSaveReqVO> plans;
|
private List<ContractPlanSaveReqVO> plans;
|
||||||
|
|
||||||
// 价款结算条款
|
|
||||||
private List<ContractFormulaSaveReqVO> formulas;
|
|
||||||
}
|
}
|
||||||
@@ -10,14 +10,14 @@ import java.util.List;
|
|||||||
@Data
|
@Data
|
||||||
public class ContractFormulaSaveReqVO {
|
public class ContractFormulaSaveReqVO {
|
||||||
|
|
||||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28539")
|
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "22933")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Schema(description = "合同明细主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "8181")
|
@Schema(description = "合同主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9162")
|
||||||
@NotNull(message = "合同明细主键不能为空")
|
@NotNull(message = "合同主键不能为空")
|
||||||
private Long contractDetailId;
|
private Long contractId;
|
||||||
|
|
||||||
@Schema(description = "公式类型;单价/总价/水扣款/加工费", example = "UNIT_PRICE")
|
@Schema(description = "公式类型;单价/总价/水扣款/加工费", example = "1")
|
||||||
private String formulaType;
|
private String formulaType;
|
||||||
|
|
||||||
@Schema(description = "公式")
|
@Schema(description = "公式")
|
||||||
@@ -26,7 +26,7 @@ public class ContractFormulaSaveReqVO {
|
|||||||
@Schema(description = "编码公式")
|
@Schema(description = "编码公式")
|
||||||
private String numberFormula;
|
private String numberFormula;
|
||||||
|
|
||||||
@Schema(description = "物料名称", example = "物料名称")
|
@Schema(description = "物料名称", example = "赵六")
|
||||||
private String materialName;
|
private String materialName;
|
||||||
|
|
||||||
@Schema(description = "物料编码")
|
@Schema(description = "物料编码")
|
||||||
@@ -41,10 +41,10 @@ public class ContractFormulaSaveReqVO {
|
|||||||
@Schema(description = "金属元素缩写")
|
@Schema(description = "金属元素缩写")
|
||||||
private String elementAbbreviation;
|
private String elementAbbreviation;
|
||||||
|
|
||||||
@Schema(description = "金属元素名称", example = "金属元素名称")
|
@Schema(description = "金属元素名称", example = "赵六")
|
||||||
private String elementName;
|
private String elementName;
|
||||||
|
|
||||||
@Schema(description = "结算类型,多条使用逗号分隔(字典:PRCH_STLM_TP)", example = "LST")
|
@Schema(description = "结算类型,多条使用逗号分隔(字典:PRCH_STLM_TP)", example = "1")
|
||||||
private String settlementType;
|
private String settlementType;
|
||||||
|
|
||||||
// 基础系数配置
|
// 基础系数配置
|
||||||
|
|||||||
@@ -214,4 +214,7 @@ public class ContractSaveReqVO {
|
|||||||
|
|
||||||
// 合同动态表单
|
// 合同动态表单
|
||||||
private List<TemplateInstanceDataSaveReqVO> dynamicsFields;
|
private List<TemplateInstanceDataSaveReqVO> dynamicsFields;
|
||||||
|
|
||||||
|
// 价款结算条款
|
||||||
|
private List<ContractFormulaSaveReqVO> formulas;
|
||||||
}
|
}
|
||||||
@@ -38,7 +38,4 @@ public class ContractViewDetailRespVO {
|
|||||||
|
|
||||||
// 交货计划
|
// 交货计划
|
||||||
private List<ContractViewPlanRespVO> plans;
|
private List<ContractViewPlanRespVO> plans;
|
||||||
|
|
||||||
// 价款结算条款
|
|
||||||
private List<ContractViewFormulaRespVO> formulas;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,13 +8,13 @@ import java.util.List;
|
|||||||
@Schema(description = "管理后台 - 价款结算条款 Response VO")
|
@Schema(description = "管理后台 - 价款结算条款 Response VO")
|
||||||
@Data
|
@Data
|
||||||
public class ContractViewFormulaRespVO {
|
public class ContractViewFormulaRespVO {
|
||||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28539")
|
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "22933")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Schema(description = "合同明细主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "8181")
|
@Schema(description = "合同主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9162")
|
||||||
private Long contractDetailId;
|
private Long contractId;
|
||||||
|
|
||||||
@Schema(description = "公式类型;单价/总价/水扣款/加工费", example = "UNIT_PRICE")
|
@Schema(description = "公式类型;单价/总价/水扣款/加工费", example = "1")
|
||||||
private String formulaType;
|
private String formulaType;
|
||||||
|
|
||||||
@Schema(description = "公式")
|
@Schema(description = "公式")
|
||||||
@@ -23,7 +23,7 @@ public class ContractViewFormulaRespVO {
|
|||||||
@Schema(description = "编码公式")
|
@Schema(description = "编码公式")
|
||||||
private String numberFormula;
|
private String numberFormula;
|
||||||
|
|
||||||
@Schema(description = "物料名称", example = "物料名称")
|
@Schema(description = "物料名称", example = "赵六")
|
||||||
private String materialName;
|
private String materialName;
|
||||||
|
|
||||||
@Schema(description = "物料编码")
|
@Schema(description = "物料编码")
|
||||||
@@ -38,9 +38,12 @@ public class ContractViewFormulaRespVO {
|
|||||||
@Schema(description = "金属元素缩写")
|
@Schema(description = "金属元素缩写")
|
||||||
private String elementAbbreviation;
|
private String elementAbbreviation;
|
||||||
|
|
||||||
@Schema(description = "金属元素名称", example = "金属元素名称")
|
@Schema(description = "金属元素名称", example = "赵六")
|
||||||
private String elementName;
|
private String elementName;
|
||||||
|
|
||||||
|
@Schema(description = "结算类型,多条使用逗号分隔(字典:PRCH_STLM_TP)", example = "1")
|
||||||
|
private String settlementType;
|
||||||
|
|
||||||
// 基础系数配置
|
// 基础系数配置
|
||||||
private List<ContractViewCoefficientRespVO> coefficients;
|
private List<ContractViewCoefficientRespVO> coefficients;
|
||||||
// 品位等级价配置
|
// 品位等级价配置
|
||||||
|
|||||||
@@ -300,4 +300,7 @@ public class ContractViewRespVO {
|
|||||||
|
|
||||||
// 合同动态条款
|
// 合同动态条款
|
||||||
private List<TemplateInstanceItemRespVO> dynamicsItems;
|
private List<TemplateInstanceItemRespVO> dynamicsItems;
|
||||||
|
|
||||||
|
// 价款结算条款
|
||||||
|
private List<ContractViewFormulaRespVO> formulas;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,10 +28,10 @@ public class ContractFormulaDO extends BusinessBaseDO {
|
|||||||
@TableId(type = IdType.ASSIGN_ID)
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
private Long id;
|
private Long id;
|
||||||
/**
|
/**
|
||||||
* 合同明细主键
|
* 合同主键
|
||||||
*/
|
*/
|
||||||
@TableField("CTRT_DTL_ID")
|
@TableField("CTRT_ID")
|
||||||
private Long contractDetailId;
|
private Long contractId;
|
||||||
/**
|
/**
|
||||||
* 公式类型;单价/总价/水扣款/加工费
|
* 公式类型;单价/总价/水扣款/加工费
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.zt.plat.module.contractorder.service.contract;
|
package com.zt.plat.module.contractorder.service.contract;
|
||||||
|
|
||||||
import com.zt.plat.framework.common.pojo.PageResult;
|
import com.zt.plat.framework.common.pojo.PageResult;
|
||||||
|
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractApprovalReqVO;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractPageReqVO;
|
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractPageReqVO;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractSaveReqVO;
|
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractSaveReqVO;
|
||||||
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractViewRespVO;
|
import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractViewRespVO;
|
||||||
@@ -53,4 +54,6 @@ public interface ContractService {
|
|||||||
* @return 审批结果
|
* @return 审批结果
|
||||||
*/
|
*/
|
||||||
String submitApproval(Long id);
|
String submitApproval(Long id);
|
||||||
|
|
||||||
|
String approval(@Valid ContractApprovalReqVO reqVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,74 +142,74 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
contractPlanMapper.insert(planDO);
|
contractPlanMapper.insert(planDO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 价款结算条款
|
// 价款结算条款
|
||||||
if (detail.getFormulas() != null && !detail.getFormulas().isEmpty()) {
|
if (reqVO.getFormulas() != null && !reqVO.getFormulas().isEmpty()) {
|
||||||
detail.getFormulas().forEach(formula -> {
|
reqVO.getFormulas().forEach(formula -> {
|
||||||
// 价款结算条款DO
|
// 价款结算条款DO
|
||||||
ContractFormulaDO formulaDO = BeanUtils.toBean(formula, ContractFormulaDO.class);
|
ContractFormulaDO formulaDO = BeanUtils.toBean(formula, ContractFormulaDO.class);
|
||||||
// 合同明细主键
|
// 合同主键
|
||||||
formulaDO.setContractDetailId(detailDOId);
|
formulaDO.setContractId(contractId);
|
||||||
// 保存价款结算条款
|
// 保存价款结算条款
|
||||||
contractFormulaMapper.insert(formulaDO);
|
contractFormulaMapper.insert(formulaDO);
|
||||||
|
|
||||||
// 价款结算条款ID
|
// 价款结算条款ID
|
||||||
Long formulaDOId = formulaDO.getId();
|
Long formulaDOId = formulaDO.getId();
|
||||||
// 基础系数配置
|
// 基础系数配置
|
||||||
if (formula.getCoefficients() != null && !formula.getCoefficients().isEmpty()) {
|
if (formula.getCoefficients() != null && !formula.getCoefficients().isEmpty()) {
|
||||||
formula.getCoefficients().forEach(coefficient -> {
|
formula.getCoefficients().forEach(coefficient -> {
|
||||||
// 基础系数配置DO
|
// 基础系数配置DO
|
||||||
ContractCoefficientDO coefficientDO = BeanUtils.toBean(coefficient, ContractCoefficientDO.class);
|
ContractCoefficientDO coefficientDO = BeanUtils.toBean(coefficient, ContractCoefficientDO.class);
|
||||||
// 条款主键
|
// 条款主键
|
||||||
coefficientDO.setFormulaId(formulaDOId);
|
coefficientDO.setFormulaId(formulaDOId);
|
||||||
// 保存基础系数配置
|
// 保存基础系数配置
|
||||||
contractCoefficientMapper.insert(coefficientDO);
|
contractCoefficientMapper.insert(coefficientDO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 品位等级价配置
|
// 品位等级价配置
|
||||||
if (formula.getGrades() != null && !formula.getGrades().isEmpty()) {
|
if (formula.getGrades() != null && !formula.getGrades().isEmpty()) {
|
||||||
formula.getGrades().forEach(grade -> {
|
formula.getGrades().forEach(grade -> {
|
||||||
// 品位等级价配置DO
|
// 品位等级价配置DO
|
||||||
ContractGradeDO gradeDO = BeanUtils.toBean(grade, ContractGradeDO.class);
|
ContractGradeDO gradeDO = BeanUtils.toBean(grade, ContractGradeDO.class);
|
||||||
// 条款主键
|
// 条款主键
|
||||||
gradeDO.setFormulaId(formulaDOId);
|
gradeDO.setFormulaId(formulaDOId);
|
||||||
// 保存品位等级价配置
|
// 保存品位等级价配置
|
||||||
contractGradeMapper.insert(gradeDO);
|
contractGradeMapper.insert(gradeDO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 调整价配置
|
// 调整价配置
|
||||||
if (formula.getDeducts() != null && !formula.getDeducts().isEmpty()) {
|
if (formula.getDeducts() != null && !formula.getDeducts().isEmpty()) {
|
||||||
formula.getDeducts().forEach(deduct -> {
|
formula.getDeducts().forEach(deduct -> {
|
||||||
// 调整价配置DO
|
// 调整价配置DO
|
||||||
ContractDeductDO deductDO = BeanUtils.toBean(deduct, ContractDeductDO.class);
|
ContractDeductDO deductDO = BeanUtils.toBean(deduct, ContractDeductDO.class);
|
||||||
// 条款主键
|
// 条款主键
|
||||||
deductDO.setFormulaId(formulaDOId);
|
deductDO.setFormulaId(formulaDOId);
|
||||||
// 保存品位等级价配置
|
// 保存品位等级价配置
|
||||||
contractDeductMapper.insert(deductDO);
|
contractDeductMapper.insert(deductDO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 市场价配置
|
// 市场价配置
|
||||||
if (formula.getPrices()!= null && !formula.getPrices().isEmpty()) {
|
if (formula.getPrices()!= null && !formula.getPrices().isEmpty()) {
|
||||||
formula.getPrices().forEach(price -> {
|
formula.getPrices().forEach(price -> {
|
||||||
// 市场价配置DO
|
// 市场价配置DO
|
||||||
ContractPriceDO priceDO = BeanUtils.toBean(price, ContractPriceDO.class);
|
ContractPriceDO priceDO = BeanUtils.toBean(price, ContractPriceDO.class);
|
||||||
// 条款主键
|
// 条款主键
|
||||||
priceDO.setFormulaId(formulaDOId);
|
priceDO.setFormulaId(formulaDOId);
|
||||||
// 保存市场价配置
|
// 保存市场价配置
|
||||||
contractPriceMapper.insert(priceDO);
|
contractPriceMapper.insert(priceDO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 品位不计价配置
|
// 品位不计价配置
|
||||||
if (formula.getNots() != null && !formula.getNots().isEmpty()) {
|
if (formula.getNots() != null && !formula.getNots().isEmpty()) {
|
||||||
formula.getNots().forEach(not -> {
|
formula.getNots().forEach(not -> {
|
||||||
// 品位不计价配置DO
|
// 品位不计价配置DO
|
||||||
ContractNotDO notDO = BeanUtils.toBean(not, ContractNotDO.class);
|
ContractNotDO notDO = BeanUtils.toBean(not, ContractNotDO.class);
|
||||||
// 条款主键
|
// 条款主键
|
||||||
notDO.setFormulaId(formulaDOId);
|
notDO.setFormulaId(formulaDOId);
|
||||||
// 保存品位不计价配置
|
// 保存品位不计价配置
|
||||||
contractNotMapper.insert(notDO);
|
contractNotMapper.insert(notDO);
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -259,46 +259,46 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
if (planDOS != null && !planDOS.isEmpty()) {
|
if (planDOS != null && !planDOS.isEmpty()) {
|
||||||
detail.setPlans(BeanUtils.toBean(planDOS, ContractViewPlanRespVO.class));
|
detail.setPlans(BeanUtils.toBean(planDOS, ContractViewPlanRespVO.class));
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 查询并设置价款结算条款
|
// 查询并设置价款结算条款
|
||||||
List<ContractFormulaDO> formulaDOS = contractFormulaMapper
|
List<ContractFormulaDO> formulaDOS = contractFormulaMapper
|
||||||
.selectList(TableFieldConstants.BSE_CTRT_FMU_CTRT_DTL_ID, detail.getId());
|
.selectList(TableFieldConstants.BSE_CTRT_FMU_CTRT_ID, contractMainDO.getId());
|
||||||
if (formulaDOS != null && !formulaDOS.isEmpty()) {
|
if (formulaDOS != null && !formulaDOS.isEmpty()) {
|
||||||
detail.setFormulas(BeanUtils.toBean(formulaDOS, ContractViewFormulaRespVO.class));
|
respVO.setFormulas(BeanUtils.toBean(formulaDOS, ContractViewFormulaRespVO.class));
|
||||||
|
|
||||||
detail.getFormulas().forEach(formula -> {
|
respVO.getFormulas().forEach(formula -> {
|
||||||
|
|
||||||
// 查询并设置基础系数配置
|
// 查询并设置基础系数配置
|
||||||
List<ContractCoefficientDO> coefficientDOS = contractCoefficientMapper
|
List<ContractCoefficientDO> coefficientDOS = contractCoefficientMapper
|
||||||
.selectList(TableFieldConstants.BSE_CTRT_COEF_FMU_ID, formula.getId());
|
.selectList(TableFieldConstants.BSE_CTRT_COEF_FMU_ID, formula.getId());
|
||||||
if (coefficientDOS != null && !coefficientDOS.isEmpty()) {
|
if (coefficientDOS != null && !coefficientDOS.isEmpty()) {
|
||||||
formula.setCoefficients(BeanUtils.toBean(coefficientDOS, ContractViewCoefficientRespVO.class));
|
formula.setCoefficients(BeanUtils.toBean(coefficientDOS, ContractViewCoefficientRespVO.class));
|
||||||
}
|
}
|
||||||
// 查询并设置品位等级价配置
|
// 查询并设置品位等级价配置
|
||||||
List<ContractGradeDO> gradeDOS = contractGradeMapper
|
List<ContractGradeDO> gradeDOS = contractGradeMapper
|
||||||
.selectList(TableFieldConstants.BSE_CTRT_GRD_FMU_ID, formula.getId());
|
.selectList(TableFieldConstants.BSE_CTRT_GRD_FMU_ID, formula.getId());
|
||||||
if (gradeDOS != null && !gradeDOS.isEmpty()) {
|
if (gradeDOS != null && !gradeDOS.isEmpty()) {
|
||||||
formula.setGrades(BeanUtils.toBean(gradeDOS, ContractViewGradeRespVO.class));
|
formula.setGrades(BeanUtils.toBean(gradeDOS, ContractViewGradeRespVO.class));
|
||||||
}
|
}
|
||||||
// 查询并设置调整价配置
|
// 查询并设置调整价配置
|
||||||
List<ContractDeductDO> deductDOS = contractDeductMapper
|
List<ContractDeductDO> deductDOS = contractDeductMapper
|
||||||
.selectList(TableFieldConstants.BSE_CTRT_DDCT_FMU_ID, formula.getId());
|
.selectList(TableFieldConstants.BSE_CTRT_DDCT_FMU_ID, formula.getId());
|
||||||
if (deductDOS != null && !deductDOS.isEmpty()) {
|
if (deductDOS != null && !deductDOS.isEmpty()) {
|
||||||
formula.setDeducts(BeanUtils.toBean(deductDOS, ContractViewDeductRespVO.class));
|
formula.setDeducts(BeanUtils.toBean(deductDOS, ContractViewDeductRespVO.class));
|
||||||
}
|
}
|
||||||
// 查询并设置市场价配置
|
// 查询并设置市场价配置
|
||||||
List<ContractPriceDO> priceDOS = contractPriceMapper
|
List<ContractPriceDO> priceDOS = contractPriceMapper
|
||||||
.selectList(TableFieldConstants.BSE_CTRT_PRC_FMU_ID, formula.getId());
|
.selectList(TableFieldConstants.BSE_CTRT_PRC_FMU_ID, formula.getId());
|
||||||
if (priceDOS != null && !priceDOS.isEmpty()) {
|
if (priceDOS != null && !priceDOS.isEmpty()) {
|
||||||
formula.setPrices(BeanUtils.toBean(priceDOS, ContractViewPriceRespVO.class));
|
formula.setPrices(BeanUtils.toBean(priceDOS, ContractViewPriceRespVO.class));
|
||||||
}
|
}
|
||||||
// 查询并设置品位不计价配置
|
// 查询并设置品位不计价配置
|
||||||
List<ContractNotDO> notDOS = contractNotMapper
|
List<ContractNotDO> notDOS = contractNotMapper
|
||||||
.selectList(TableFieldConstants.BSE_CTRT_NT_FMU_ID, formula.getId());
|
.selectList(TableFieldConstants.BSE_CTRT_NT_FMU_ID, formula.getId());
|
||||||
if (notDOS != null && !notDOS.isEmpty()) {
|
if (notDOS != null && !notDOS.isEmpty()) {
|
||||||
formula.setNots(BeanUtils.toBean(notDOS, ContractViewNotRespVO.class));
|
formula.setNots(BeanUtils.toBean(notDOS, ContractViewNotRespVO.class));
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -378,37 +378,37 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
|
|
||||||
// 删除交货计划
|
// 删除交货计划
|
||||||
contractPlanMapper.delete(TableFieldConstants.BSE_CTRT_PLN_CTRT_DTL_ID, detailDOId.toString());
|
contractPlanMapper.delete(TableFieldConstants.BSE_CTRT_PLN_CTRT_DTL_ID, detailDOId.toString());
|
||||||
|
|
||||||
// 查询价款结算条款
|
|
||||||
List<ContractFormulaDO> formulaDOS = contractFormulaMapper
|
|
||||||
.selectList(TableFieldConstants.BSE_CTRT_FMU_CTRT_DTL_ID, detailDOId.toString());
|
|
||||||
if (formulaDOS != null && !formulaDOS.isEmpty()) {
|
|
||||||
formulaDOS.forEach(formulaDO -> {
|
|
||||||
|
|
||||||
// 价款结算条款ID
|
|
||||||
Long formulaDOId = formulaDO.getId();
|
|
||||||
|
|
||||||
// 删除基础系数配置
|
|
||||||
contractCoefficientMapper.delete(TableFieldConstants.BSE_CTRT_COEF_FMU_ID, formulaDOId.toString());
|
|
||||||
// 删除品位等级价配置
|
|
||||||
contractGradeMapper.delete(TableFieldConstants.BSE_CTRT_GRD_FMU_ID, formulaDOId.toString());
|
|
||||||
// 删除调整价配置
|
|
||||||
contractDeductMapper.delete(TableFieldConstants.BSE_CTRT_DDCT_FMU_ID, formulaDOId.toString());
|
|
||||||
// 删除市场价配置
|
|
||||||
contractPriceMapper.delete(TableFieldConstants.BSE_CTRT_PRC_FMU_ID, formulaDOId.toString());
|
|
||||||
// 删除品位不计价配置
|
|
||||||
contractNotMapper.delete(TableFieldConstants.BSE_CTRT_NT_FMU_ID, formulaDOId.toString());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除价款结算条款
|
|
||||||
contractFormulaMapper.delete(TableFieldConstants.BSE_CTRT_FMU_CTRT_DTL_ID, detailDOId.toString());
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// 删除合同明细
|
// 删除合同明细
|
||||||
contractDetailMapper.delete(TableFieldConstants.BSE_CTRT_DTL_CTRT_MAIN_ID, id.toString());
|
contractDetailMapper.delete(TableFieldConstants.BSE_CTRT_DTL_CTRT_MAIN_ID, id.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查询价款结算条款
|
||||||
|
List<ContractFormulaDO> formulaDOS = contractFormulaMapper
|
||||||
|
.selectList(TableFieldConstants.BSE_CTRT_FMU_CTRT_ID, id);
|
||||||
|
if (formulaDOS != null && !formulaDOS.isEmpty()) {
|
||||||
|
formulaDOS.forEach(formulaDO -> {
|
||||||
|
|
||||||
|
// 价款结算条款ID
|
||||||
|
Long formulaDOId = formulaDO.getId();
|
||||||
|
|
||||||
|
// 删除基础系数配置
|
||||||
|
contractCoefficientMapper.delete(TableFieldConstants.BSE_CTRT_COEF_FMU_ID, formulaDOId.toString());
|
||||||
|
// 删除品位等级价配置
|
||||||
|
contractGradeMapper.delete(TableFieldConstants.BSE_CTRT_GRD_FMU_ID, formulaDOId.toString());
|
||||||
|
// 删除调整价配置
|
||||||
|
contractDeductMapper.delete(TableFieldConstants.BSE_CTRT_DDCT_FMU_ID, formulaDOId.toString());
|
||||||
|
// 删除市场价配置
|
||||||
|
contractPriceMapper.delete(TableFieldConstants.BSE_CTRT_PRC_FMU_ID, formulaDOId.toString());
|
||||||
|
// 删除品位不计价配置
|
||||||
|
contractNotMapper.delete(TableFieldConstants.BSE_CTRT_NT_FMU_ID, formulaDOId.toString());
|
||||||
|
});
|
||||||
|
|
||||||
|
// 删除价款结算条款
|
||||||
|
contractFormulaMapper.delete(TableFieldConstants.BSE_CTRT_FMU_CTRT_ID, id.toString());
|
||||||
|
}
|
||||||
|
|
||||||
// 重新插入关联信息
|
// 重新插入关联信息
|
||||||
if (reqVO.getDetail() != null && !reqVO.getDetail().isEmpty()) {
|
if (reqVO.getDetail() != null && !reqVO.getDetail().isEmpty()) {
|
||||||
reqVO.getDetail().forEach(detail -> {
|
reqVO.getDetail().forEach(detail -> {
|
||||||
@@ -432,74 +432,74 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
contractPlanMapper.insert(planDO);
|
contractPlanMapper.insert(planDO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 价款结算条款
|
// 价款结算条款
|
||||||
if (detail.getFormulas() != null && !detail.getFormulas().isEmpty()) {
|
if (reqVO.getFormulas() != null && !reqVO.getFormulas().isEmpty()) {
|
||||||
detail.getFormulas().forEach(formula -> {
|
reqVO.getFormulas().forEach(formula -> {
|
||||||
// 价款结算条款DO
|
// 价款结算条款DO
|
||||||
ContractFormulaDO formulaDO = BeanUtils.toBean(formula, ContractFormulaDO.class);
|
ContractFormulaDO formulaDO = BeanUtils.toBean(formula, ContractFormulaDO.class);
|
||||||
// 合同明细主键
|
// 合同主键
|
||||||
formulaDO.setContractDetailId(detailDOId);
|
formulaDO.setContractId(id);
|
||||||
// 保存价款结算条款
|
// 保存价款结算条款
|
||||||
contractFormulaMapper.insert(formulaDO);
|
contractFormulaMapper.insert(formulaDO);
|
||||||
|
|
||||||
// 价款结算条款ID
|
// 价款结算条款ID
|
||||||
Long formulaDOId = formulaDO.getId();
|
Long formulaDOId = formulaDO.getId();
|
||||||
// 基础系数配置
|
// 基础系数配置
|
||||||
if (formula.getCoefficients() != null && !formula.getCoefficients().isEmpty()) {
|
if (formula.getCoefficients() != null && !formula.getCoefficients().isEmpty()) {
|
||||||
formula.getCoefficients().forEach(coefficient -> {
|
formula.getCoefficients().forEach(coefficient -> {
|
||||||
// 基础系数配置DO
|
// 基础系数配置DO
|
||||||
ContractCoefficientDO coefficientDO = BeanUtils.toBean(coefficient, ContractCoefficientDO.class);
|
ContractCoefficientDO coefficientDO = BeanUtils.toBean(coefficient, ContractCoefficientDO.class);
|
||||||
// 条款主键
|
// 条款主键
|
||||||
coefficientDO.setFormulaId(formulaDOId);
|
coefficientDO.setFormulaId(formulaDOId);
|
||||||
// 保存基础系数配置
|
// 保存基础系数配置
|
||||||
contractCoefficientMapper.insert(coefficientDO);
|
contractCoefficientMapper.insert(coefficientDO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 品位等级价配置
|
// 品位等级价配置
|
||||||
if (formula.getGrades() != null && !formula.getGrades().isEmpty()) {
|
if (formula.getGrades() != null && !formula.getGrades().isEmpty()) {
|
||||||
formula.getGrades().forEach(grade -> {
|
formula.getGrades().forEach(grade -> {
|
||||||
// 品位等级价配置DO
|
// 品位等级价配置DO
|
||||||
ContractGradeDO gradeDO = BeanUtils.toBean(grade, ContractGradeDO.class);
|
ContractGradeDO gradeDO = BeanUtils.toBean(grade, ContractGradeDO.class);
|
||||||
// 条款主键
|
// 条款主键
|
||||||
gradeDO.setFormulaId(formulaDOId);
|
gradeDO.setFormulaId(formulaDOId);
|
||||||
// 保存品位等级价配置
|
// 保存品位等级价配置
|
||||||
contractGradeMapper.insert(gradeDO);
|
contractGradeMapper.insert(gradeDO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 调整价配置
|
// 调整价配置
|
||||||
if (formula.getDeducts() != null && !formula.getDeducts().isEmpty()) {
|
if (formula.getDeducts() != null && !formula.getDeducts().isEmpty()) {
|
||||||
formula.getDeducts().forEach(deduct -> {
|
formula.getDeducts().forEach(deduct -> {
|
||||||
// 调整价配置DO
|
// 调整价配置DO
|
||||||
ContractDeductDO deductDO = BeanUtils.toBean(deduct, ContractDeductDO.class);
|
ContractDeductDO deductDO = BeanUtils.toBean(deduct, ContractDeductDO.class);
|
||||||
// 条款主键
|
// 条款主键
|
||||||
deductDO.setFormulaId(formulaDOId);
|
deductDO.setFormulaId(formulaDOId);
|
||||||
// 保存品位等级价配置
|
// 保存品位等级价配置
|
||||||
contractDeductMapper.insert(deductDO);
|
contractDeductMapper.insert(deductDO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 市场价配置
|
// 市场价配置
|
||||||
if (formula.getPrices()!= null && !formula.getPrices().isEmpty()) {
|
if (formula.getPrices()!= null && !formula.getPrices().isEmpty()) {
|
||||||
formula.getPrices().forEach(price -> {
|
formula.getPrices().forEach(price -> {
|
||||||
// 市场价配置DO
|
// 市场价配置DO
|
||||||
ContractPriceDO priceDO = BeanUtils.toBean(price, ContractPriceDO.class);
|
ContractPriceDO priceDO = BeanUtils.toBean(price, ContractPriceDO.class);
|
||||||
// 条款主键
|
// 条款主键
|
||||||
priceDO.setFormulaId(formulaDOId);
|
priceDO.setFormulaId(formulaDOId);
|
||||||
// 保存市场价配置
|
// 保存市场价配置
|
||||||
contractPriceMapper.insert(priceDO);
|
contractPriceMapper.insert(priceDO);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 品位不计价配置
|
// 品位不计价配置
|
||||||
if (formula.getNots() != null && !formula.getNots().isEmpty()) {
|
if (formula.getNots() != null && !formula.getNots().isEmpty()) {
|
||||||
formula.getNots().forEach(not -> {
|
formula.getNots().forEach(not -> {
|
||||||
// 品位不计价配置DO
|
// 品位不计价配置DO
|
||||||
ContractNotDO notDO = BeanUtils.toBean(not, ContractNotDO.class);
|
ContractNotDO notDO = BeanUtils.toBean(not, ContractNotDO.class);
|
||||||
// 条款主键
|
// 条款主键
|
||||||
notDO.setFormulaId(formulaDOId);
|
notDO.setFormulaId(formulaDOId);
|
||||||
// 保存品位不计价配置
|
// 保存品位不计价配置
|
||||||
contractNotMapper.insert(notDO);
|
contractNotMapper.insert(notDO);
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -561,27 +561,68 @@ public class ContractServiceImpl implements ContractService {
|
|||||||
AdminUserRespDTO adminUserRespDTO = adminUserApi
|
AdminUserRespDTO adminUserRespDTO = adminUserApi
|
||||||
.getUser(SecurityFrameworkUtils.getLoginUserId()).getData();
|
.getUser(SecurityFrameworkUtils.getLoginUserId()).getData();
|
||||||
|
|
||||||
// 先创建流程,后更新状态
|
if (StringUtils.isNotBlank(contractMainDO.getProcessInstanceId())) {
|
||||||
BpmProcessInstanceCreateReqDTO pidto = new BpmProcessInstanceCreateReqDTO();
|
|
||||||
pidto.setProcessDefinitionKey(ProcessConstants.CONTRACT_APPROVAL_PROCESS);
|
// TODO:驳回状态重新提交审批处理
|
||||||
pidto.setBusinessKey(String.valueOf(id));
|
// 进入审批流程的合同,查询当前审批的任务节点
|
||||||
String data = bpmProcessInstanceApi.createProcessInstance(adminUserRespDTO.getId(), pidto).getData();
|
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(contractMainDO.getProcessInstanceId()).getData();
|
||||||
if (StringUtils.isNotBlank(data)) {
|
} else {
|
||||||
// 获取流程当前审批的任务节点
|
|
||||||
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(data).getData();
|
// 未进入审批流程的合同,创建审批流程
|
||||||
contractMainDO.setProcessInstanceId(data);
|
BpmProcessInstanceCreateReqDTO pidto = new BpmProcessInstanceCreateReqDTO();
|
||||||
if (CollectionUtils.isNotEmpty(taskList)) {
|
pidto.setProcessDefinitionKey(ProcessConstants.CONTRACT_APPROVAL_PROCESS);
|
||||||
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);
|
pidto.setBusinessKey(String.valueOf(id));
|
||||||
contractMainDO.setTaskNodeId(undoTask.getId());
|
String data = bpmProcessInstanceApi.createProcessInstance(adminUserRespDTO.getId(), pidto).getData();
|
||||||
|
if (StringUtils.isNotBlank(data)) {
|
||||||
|
|
||||||
|
// 获取流程当前审批的任务节点,更新合同审批状态
|
||||||
|
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(data).getData();
|
||||||
|
contractMainDO.setProcessInstanceId(data);
|
||||||
|
if (CollectionUtils.isNotEmpty(taskList)) {
|
||||||
|
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);
|
||||||
|
contractMainDO.setTaskNodeId(undoTask.getId());
|
||||||
|
}
|
||||||
|
contractMainDO.setStatus(ContractStatusEnum.UNDER_REVIEW.getCode());
|
||||||
|
contractMainMapper.updateById(contractMainDO);
|
||||||
|
return "提交审批成功";
|
||||||
}
|
}
|
||||||
contractMainDO.setStatus(ContractStatusEnum.UNDER_REVIEW.getCode());
|
|
||||||
contractMainMapper.updateById(contractMainDO);
|
|
||||||
return "提交审批成功";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return "提交审批失败";
|
return "提交审批失败";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String approval(ContractApprovalReqVO reqVO) {
|
||||||
|
|
||||||
|
// 合同主键ID
|
||||||
|
Long id = reqVO.getId();
|
||||||
|
|
||||||
|
// 判断主键
|
||||||
|
if (ObjectUtils.isEmpty(id)) {
|
||||||
|
throw exception(CONTRACT_ID_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询合同是否存在
|
||||||
|
ContractMainDO contractMainDO = contractMainMapper.selectById(id);
|
||||||
|
if (contractMainDO == null) {
|
||||||
|
throw exception(CONTRACT_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 合同状态校验
|
||||||
|
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())) {
|
||||||
|
|
||||||
|
throw exception(CONTRACT_STATUS_NOT_APPROVAL,
|
||||||
|
ContractStatusEnum.valueOf(contractMainDO.getStatus()).getLabel());
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验合同内容
|
* 校验合同内容
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user