1.0.79 合同变更类优化

dev
yinq 4 days ago
parent 1a57b13eb4
commit bd7b76767f

@ -4,6 +4,7 @@ import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
@ -62,7 +63,7 @@ public class ErpContractChange extends TenantEntity {
/** /**
* *
*/ */
private Long changeContractAmount; private BigDecimal changeContractAmount;
/** /**
* *
@ -82,7 +83,7 @@ public class ErpContractChange extends TenantEntity {
/** /**
* *
*/ */
private Long originalContractAmount; private BigDecimal originalContractAmount;
/** /**
* *

@ -4,6 +4,7 @@ import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
@ -82,7 +83,7 @@ public class ErpContractChangeInfo extends TenantEntity {
/** /**
* *
*/ */
private Long totalPrice; private BigDecimal totalPrice;
/** /**
* *
@ -192,7 +193,7 @@ public class ErpContractChangeInfo extends TenantEntity {
/** /**
* *
*/ */
private Long taxRate; private BigDecimal taxRate;
/** /**
* *

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serial; import java.io.Serial;
import java.math.BigDecimal;
/** /**
* erp_contract_change_material * erp_contract_change_material
@ -60,7 +61,7 @@ public class ErpContractChangeMaterial extends TenantEntity {
/** /**
* *
*/ */
private Long amount; private BigDecimal amount;
/** /**
* ID * ID
@ -70,22 +71,22 @@ public class ErpContractChangeMaterial extends TenantEntity {
/** /**
* *
*/ */
private Long beforePrice; private BigDecimal beforePrice;
/** /**
* *
*/ */
private Long taxRate; private BigDecimal taxRate;
/** /**
* *
*/ */
private Long includingPrice; private BigDecimal includingPrice;
/** /**
* *
*/ */
private Long subtotal; private BigDecimal subtotal;
/** /**
* *

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serial; import java.io.Serial;
import java.math.BigDecimal;
/** /**
* erp_contract_change_payment_method * erp_contract_change_payment_method
@ -45,22 +46,22 @@ public class ErpContractChangePaymentMethod extends TenantEntity {
/** /**
* *
*/ */
private Long paymentDeadline; private BigDecimal paymentDeadline;
/** /**
* *
*/ */
private Long paymentPercentage; private BigDecimal paymentPercentage;
/** /**
* *
*/ */
private Long invoicePercentage; private BigDecimal invoicePercentage;
/** /**
* *
*/ */
private Long paymentAmount; private BigDecimal paymentAmount;
/** /**
* *

@ -8,6 +8,7 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
@ -61,7 +62,7 @@ public class ErpContractChangeBo extends BaseEntity {
/** /**
* *
*/ */
private Long changeContractAmount; private BigDecimal changeContractAmount;
/** /**
* *
@ -81,7 +82,7 @@ public class ErpContractChangeBo extends BaseEntity {
/** /**
* *
*/ */
private Long originalContractAmount; private BigDecimal originalContractAmount;
/** /**
* *

@ -8,6 +8,7 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
@ -80,7 +81,7 @@ public class ErpContractChangeInfoBo extends BaseEntity {
/** /**
* *
*/ */
private Long totalPrice; private BigDecimal totalPrice;
/** /**
* *
@ -190,7 +191,7 @@ public class ErpContractChangeInfoBo extends BaseEntity {
/** /**
* *
*/ */
private Long taxRate; private BigDecimal taxRate;
/** /**
* *

@ -8,6 +8,7 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import java.math.BigDecimal;
/** /**
* erp_contract_change_material * erp_contract_change_material
@ -58,7 +59,7 @@ public class ErpContractChangeMaterialBo extends BaseEntity {
/** /**
* *
*/ */
private Long amount; private BigDecimal amount;
/** /**
* ID * ID
@ -68,22 +69,22 @@ public class ErpContractChangeMaterialBo extends BaseEntity {
/** /**
* *
*/ */
private Long beforePrice; private BigDecimal beforePrice;
/** /**
* *
*/ */
private Long taxRate; private BigDecimal taxRate;
/** /**
* *
*/ */
private Long includingPrice; private BigDecimal includingPrice;
/** /**
* *
*/ */
private Long subtotal; private BigDecimal subtotal;
/** /**
* *

@ -8,6 +8,7 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import java.math.BigDecimal;
/** /**
* erp_contract_change_payment_method * erp_contract_change_payment_method
@ -43,22 +44,22 @@ public class ErpContractChangePaymentMethodBo extends BaseEntity {
/** /**
* *
*/ */
private Long paymentDeadline; private BigDecimal paymentDeadline;
/** /**
* *
*/ */
private Long paymentPercentage; private BigDecimal paymentPercentage;
/** /**
* *
*/ */
private Long invoicePercentage; private BigDecimal invoicePercentage;
/** /**
* *
*/ */
private Long paymentAmount; private BigDecimal paymentAmount;
/** /**
* *

@ -4,6 +4,9 @@ import lombok.Data;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -46,7 +49,7 @@ public class ErpContractChangeSaveBo {
/** /**
* *
*/ */
private java.util.Date applyTime; private Date applyTime;
/** /**
* *
@ -92,11 +95,11 @@ public class ErpContractChangeSaveBo {
private String contractCode; private String contractCode;
private String contractName; private String contractName;
private String originalCustomerName; private String originalCustomerName;
private Long originalContractAmount; private BigDecimal originalContractAmount;
private String changeContractCode; private String changeContractCode;
private String changeContractName; private String changeContractName;
private String customerName; private String customerName;
private Long changeContractAmount; private BigDecimal changeContractAmount;
/** /**
* *

@ -12,6 +12,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@ -100,7 +101,7 @@ public class ErpContractChangeInfoVo implements Serializable {
* *
*/ */
@ExcelProperty(value = "合同总价") @ExcelProperty(value = "合同总价")
private Long totalPrice; private BigDecimal totalPrice;
/** /**
* *
@ -232,7 +233,7 @@ public class ErpContractChangeInfoVo implements Serializable {
* *
*/ */
@ExcelProperty(value = "合同税率") @ExcelProperty(value = "合同税率")
private Long taxRate; private BigDecimal taxRate;
/** /**
* *

@ -10,6 +10,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@ -74,7 +75,7 @@ public class ErpContractChangeMaterialVo implements Serializable {
* *
*/ */
@ExcelProperty(value = "数量") @ExcelProperty(value = "数量")
private Long amount; private BigDecimal amount;
/** /**
* ID * ID
@ -86,25 +87,25 @@ public class ErpContractChangeMaterialVo implements Serializable {
* *
*/ */
@ExcelProperty(value = "未税单价") @ExcelProperty(value = "未税单价")
private Long beforePrice; private BigDecimal beforePrice;
/** /**
* *
*/ */
@ExcelProperty(value = "税率") @ExcelProperty(value = "税率")
private Long taxRate; private BigDecimal taxRate;
/** /**
* *
*/ */
@ExcelProperty(value = "含税单价") @ExcelProperty(value = "含税单价")
private Long includingPrice; private BigDecimal includingPrice;
/** /**
* *
*/ */
@ExcelProperty(value = "小计") @ExcelProperty(value = "小计")
private Long subtotal; private BigDecimal subtotal;
/** /**
* *

@ -10,6 +10,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@ -56,25 +57,25 @@ public class ErpContractChangePaymentMethodVo implements Serializable {
* *
*/ */
@ExcelProperty(value = "支付期限") @ExcelProperty(value = "支付期限")
private Long paymentDeadline; private BigDecimal paymentDeadline;
/** /**
* *
*/ */
@ExcelProperty(value = "支付比例") @ExcelProperty(value = "支付比例")
private Long paymentPercentage; private BigDecimal paymentPercentage;
/** /**
* *
*/ */
@ExcelProperty(value = "发票比例") @ExcelProperty(value = "发票比例")
private Long invoicePercentage; private BigDecimal invoicePercentage;
/** /**
* *
*/ */
@ExcelProperty(value = "支付金额") @ExcelProperty(value = "支付金额")
private Long paymentAmount; private BigDecimal paymentAmount;
/** /**
* *

@ -12,6 +12,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@ -77,7 +78,7 @@ public class ErpContractChangeVo implements Serializable {
* *
*/ */
@ExcelProperty(value = "合同金额") @ExcelProperty(value = "合同金额")
private Long changeContractAmount; private BigDecimal changeContractAmount;
/** /**
* *
@ -101,7 +102,7 @@ public class ErpContractChangeVo implements Serializable {
* *
*/ */
@ExcelProperty(value = "原合同金额") @ExcelProperty(value = "原合同金额")
private Long originalContractAmount; private BigDecimal originalContractAmount;
/** /**
* *

@ -24,8 +24,10 @@ import org.dromara.oa.erp.domain.bo.ErpContractChangeSaveBo;
import org.dromara.oa.erp.domain.vo.*; import org.dromara.oa.erp.domain.vo.*;
import org.dromara.oa.erp.mapper.*; import org.dromara.oa.erp.mapper.*;
import org.dromara.oa.erp.service.IErpContractChangeService; import org.dromara.oa.erp.service.IErpContractChangeService;
import org.dromara.system.api.RemoteCodeRuleService;
import org.apache.dubbo.config.annotation.DubboReference;
import java.math.BigDecimal;
import java.util.Collection; import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -49,8 +51,13 @@ public class ErpContractChangeServiceImpl implements IErpContractChangeService {
private final ErpContractMaterialMapper contractMaterialMapper; private final ErpContractMaterialMapper contractMaterialMapper;
private final ErpContractPaymentMethodMapper contractPaymentMethodMapper; private final ErpContractPaymentMethodMapper contractPaymentMethodMapper;
/** 合同变更流程编码(审批通过后回写用) */ @DubboReference
private RemoteCodeRuleService remoteCodeRuleService;
/** 合同变更流程编码 */
public static final String FLOW_CODE_CONTRACT_CHANGE = "HTBG"; public static final String FLOW_CODE_CONTRACT_CHANGE = "HTBG";
/** 变更编号编码规则 */
private static final String CONTRACT_CHANGE_CODE_RULE = "1021";
/** 变更类型1内容变更 2解除合同 */ /** 变更类型1内容变更 2解除合同 */
private static final String CHANGE_TYPE_CONTENT = "1"; private static final String CHANGE_TYPE_CONTENT = "1";
@ -201,8 +208,13 @@ public class ErpContractChangeServiceImpl implements IErpContractChangeService {
deleteChangeSubByChangeId(main.getContractChangeId()); deleteChangeSubByChangeId(main.getContractChangeId());
} }
} else { } else {
if (StringUtils.isBlank(main.getChangeCode())) {
String changeCode = remoteCodeRuleService.selectCodeRuleCode(CONTRACT_CHANGE_CODE_RULE);
main.setChangeCode(changeCode);
}
baseMapper.insert(main); baseMapper.insert(main);
bo.setContractChangeId(main.getContractChangeId()); bo.setContractChangeId(main.getContractChangeId());
bo.setChangeCode(main.getChangeCode());
} }
if (CHANGE_TYPE_CONTENT.equals(bo.getChangeType())) { if (CHANGE_TYPE_CONTENT.equals(bo.getChangeType())) {
@ -366,7 +378,7 @@ public class ErpContractChangeServiceImpl implements IErpContractChangeService {
contract.setBusinessDirection(snap.getBusinessDirection()); contract.setBusinessDirection(snap.getBusinessDirection());
contract.setContractDeptId(snap.getContractDeptId()); contract.setContractDeptId(snap.getContractDeptId());
contract.setContractDate(snap.getContractDate()); contract.setContractDate(snap.getContractDate());
contract.setTotalPrice(toBigDecimal(snap.getTotalPrice())); contract.setTotalPrice(snap.getTotalPrice());
contract.setOneCustomerId(snap.getOneCustomerId()); contract.setOneCustomerId(snap.getOneCustomerId());
contract.setOneRepresent(snap.getOneRepresent()); contract.setOneRepresent(snap.getOneRepresent());
contract.setOneDate(snap.getOneDate()); contract.setOneDate(snap.getOneDate());
@ -388,7 +400,7 @@ public class ErpContractChangeServiceImpl implements IErpContractChangeService {
contract.setWarrantyPeriodDescription(snap.getWarrantyPeriodDescription()); contract.setWarrantyPeriodDescription(snap.getWarrantyPeriodDescription());
contract.setDeliveryLocation(snap.getDeliveryLocation()); contract.setDeliveryLocation(snap.getDeliveryLocation());
contract.setShipMethod(snap.getShipMethod()); contract.setShipMethod(snap.getShipMethod());
contract.setTaxRate(toBigDecimal(snap.getTaxRate())); contract.setTaxRate(snap.getTaxRate());
contract.setSigningPlace(snap.getSigningPlace()); contract.setSigningPlace(snap.getSigningPlace());
contract.setMaterialRemark(snap.getMaterialRemark()); contract.setMaterialRemark(snap.getMaterialRemark());
contract.setContractTemplateFlag(snap.getContractTemplateFlag()); contract.setContractTemplateFlag(snap.getContractTemplateFlag());
@ -409,38 +421,28 @@ public class ErpContractChangeServiceImpl implements IErpContractChangeService {
cm.setUnitId(m.getUnitId()); cm.setUnitId(m.getUnitId());
cm.setRemark(m.getRemark()); cm.setRemark(m.getRemark());
cm.setActiveFlag(StringUtils.isNotBlank(m.getActiveFlag()) ? m.getActiveFlag() : "1"); cm.setActiveFlag(StringUtils.isNotBlank(m.getActiveFlag()) ? m.getActiveFlag() : "1");
cm.setAmount(toBigDecimal(m.getAmount())); cm.setAmount(m.getAmount());
cm.setBeforePrice(toBigDecimal(m.getBeforePrice())); cm.setBeforePrice(m.getBeforePrice());
cm.setTaxRate(toBigDecimal(m.getTaxRate())); cm.setTaxRate(m.getTaxRate());
cm.setIncludingPrice(toBigDecimal(m.getIncludingPrice())); cm.setIncludingPrice(m.getIncludingPrice());
cm.setSubtotal(toBigDecimal(m.getSubtotal())); cm.setSubtotal(m.getSubtotal());
return cm; return cm;
} }
/** 变更付款方式快照转合同付款方式(回写),兼容 Long/Number 与 BigDecimal */ /** 变更付款方式快照转合同付款方式(回写) */
private ErpContractPaymentMethod copyChangePaymentToContract(ErpContractChangePaymentMethod p, Long contractId) { private ErpContractPaymentMethod copyChangePaymentToContract(ErpContractChangePaymentMethod p, Long contractId) {
ErpContractPaymentMethod cpm = new ErpContractPaymentMethod(); ErpContractPaymentMethod cpm = new ErpContractPaymentMethod();
cpm.setContractId(contractId); cpm.setContractId(contractId);
cpm.setPaymentMethodId(null); cpm.setPaymentMethodId(null);
cpm.setSortOrder(p.getSortOrder()); cpm.setSortOrder(p.getSortOrder());
cpm.setPaymentStageId(p.getPaymentStageId()); cpm.setPaymentStageId(p.getPaymentStageId());
cpm.setPaymentDeadline(toBigDecimal(p.getPaymentDeadline())); cpm.setPaymentDeadline(p.getPaymentDeadline());
cpm.setPaymentPercentage(toBigDecimal(p.getPaymentPercentage())); cpm.setPaymentPercentage(p.getPaymentPercentage());
cpm.setInvoicePercentage(toBigDecimal(p.getInvoicePercentage())); cpm.setInvoicePercentage(p.getInvoicePercentage());
cpm.setPaymentAmount(toBigDecimal(p.getPaymentAmount())); cpm.setPaymentAmount(p.getPaymentAmount());
cpm.setPaymentDescription(p.getPaymentDescription()); cpm.setPaymentDescription(p.getPaymentDescription());
cpm.setRemark(p.getRemark()); cpm.setRemark(p.getRemark());
cpm.setActiveFlag(StringUtils.isNotBlank(p.getActiveFlag()) ? p.getActiveFlag() : "1"); cpm.setActiveFlag(StringUtils.isNotBlank(p.getActiveFlag()) ? p.getActiveFlag() : "1");
return cpm; return cpm;
} }
private static BigDecimal toBigDecimal(Number n) {
if (n == null) {
return null;
}
if (n instanceof BigDecimal) {
return (BigDecimal) n;
}
return BigDecimal.valueOf(n.doubleValue());
}
} }

Loading…
Cancel
Save