1.合同变更税率丢失问题处理
This commit is contained in:
parent
34a9e63c49
commit
eba9c167e1
|
@ -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")) {
|
||||
|
|
Loading…
Reference in New Issue