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