1.合同变更税率丢失问题处理

This commit is contained in:
zhangzhiguo 2025-04-10 09:48:22 +08:00
parent 34a9e63c49
commit eba9c167e1
1 changed files with 12 additions and 0 deletions

View File

@ -3,6 +3,8 @@ package zcgj.zcdev.zcdev.pr.plugin.operate;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.EntityMetadataCache;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
@ -22,6 +24,7 @@ import java.util.stream.Stream;
public class OutContractRevisionBillOpExt extends OutContractRevisionBillOp {
private static final Log log = LogFactory.getLog(OutContractRevisionBillOpExt.class);
private static String selector = (String) Stream.of("totalrevisionamount", "totalrevisionoftaxamount", "totalamount", "totaloftaxamount", "ismultirate", "taxrate", "originalamount", "avgtaxrate", "originaloftaxamount", "taxamount").collect(Collectors.joining(","));
@Override
@ -137,6 +140,7 @@ public class OutContractRevisionBillOpExt extends OutContractRevisionBillOp {
}
if (changeType == 1 || changeType == 4 || changeType == 5) {
log.info("OutContractRevisionBillOpExt::changeType:" + changeType);
DynamicObject listing = (DynamicObject)subEntry.get("listid");
if (listing == null) {
continue;
@ -144,6 +148,7 @@ public class OutContractRevisionBillOpExt extends OutContractRevisionBillOp {
listing = BusinessDataServiceHelper.loadSingle(listing.getPkValue(), EntityMetadataCache.getDataEntityType("ec_outtreelisting"));
if (this.isSingleRateChange(contract, source)) {
log.info("OutContractRevisionBillOpExt::isSingleRateChange");
//如果是单税率变更为多税率的情况下需要判断综合税率是不是为空如果当前税率为空则有可能是单改多
Object curtaxrate = source.get("curtaxrate");
if (curtaxrate != null) {
@ -162,6 +167,7 @@ public class OutContractRevisionBillOpExt extends OutContractRevisionBillOp {
}
if (this.isMultyRateChange(contract, source)) {
log.info("OutContractRevisionBillOpExt::isMultyRateChange");
boolean ismultirate = source.getBoolean("ismultirate");
Object rateobj = subEntry.get("rateobj");
if(rateobj!=null){
@ -304,11 +310,17 @@ public class OutContractRevisionBillOpExt extends OutContractRevisionBillOp {
SaveServiceHelper.save(((DynamicObject)listaddList.get(0)).getDataEntityType(), listaddList.toArray());
}
boolean ismultirate = source.getBoolean("ismultirate");
BigDecimal curavgtaxrate = source.getBigDecimal("curavgtaxrate");//当前综合税率
if(isSingleRateChangeMultyRate && ismultirate){
log.info("OutContractRevisionBillOpExt::isSingleRateChangeMultyRate && ismultirate && curavgtaxrate:"+curavgtaxrate);
contract.set("ismultirate", true);//多税率
contract.set("avgtaxrate", curavgtaxrate);
}
if(isMultyRateChangeSingleRate && !ismultirate){
log.info("OutContractRevisionBillOpExt::isMultyRateChangeSingleRate && !ismultirate");
contract.set("ismultirate", false);//单税率
contract.set("avgtaxrate", null);
}
} else if (operationKey.equals("unaudit")) {