支出合同结算多出合同支付项bug调整(未完成)
This commit is contained in:
		
							parent
							
								
									92a166b316
								
							
						
					
					
						commit
						8a588d1ad0
					
				| 
						 | 
				
			
			@ -1,16 +1,28 @@
 | 
			
		|||
package zcgj.zcdev.zcdev.pr.plugin.operate;
 | 
			
		||||
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.entity.EntityMetadataCache;
 | 
			
		||||
import kd.bos.entity.operate.result.OperationResult;
 | 
			
		||||
import kd.bos.entity.plugin.AddValidatorsEventArgs;
 | 
			
		||||
import kd.bos.entity.plugin.PreparePropertysEventArgs;
 | 
			
		||||
import kd.bos.entity.plugin.args.AfterOperationArgs;
 | 
			
		||||
import kd.bos.entity.validate.AbstractValidator;
 | 
			
		||||
import kd.bos.logging.Log;
 | 
			
		||||
import kd.bos.logging.LogFactory;
 | 
			
		||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
 | 
			
		||||
import kd.ec.basedata.business.model.BaseConstant;
 | 
			
		||||
import kd.ec.contract.opplugin.OutContractSettleOp;
 | 
			
		||||
import kd.ec.contract.opplugin.validator.OutContractSettleValidator;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
public class OutContractSettlementOp extends OutContractSettleOp {
 | 
			
		||||
    private static final Log log = LogFactory.getLog(OutContractSettlementOp.class);
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onPreparePropertys(PreparePropertysEventArgs e) {
 | 
			
		||||
| 
						 | 
				
			
			@ -18,6 +30,7 @@ public class OutContractSettlementOp extends OutContractSettleOp {
 | 
			
		|||
        List<String> fields = e.getFieldKeys();
 | 
			
		||||
        fields.add("zcgj_is_reversabillid");
 | 
			
		||||
        fields.add("zcgj_is_invalid");
 | 
			
		||||
        fields.add("zcgj_invalidbillid");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
| 
						 | 
				
			
			@ -38,4 +51,74 @@ public class OutContractSettlementOp extends OutContractSettleOp {
 | 
			
		|||
        super.initializeOperationResult(result);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 计量清单反写
 | 
			
		||||
     */
 | 
			
		||||
    @Override
 | 
			
		||||
    public void afterExecuteOperationTransaction(AfterOperationArgs e) {
 | 
			
		||||
        super.afterExecuteOperationTransaction(e);
 | 
			
		||||
        /*long now = System.currentTimeMillis();
 | 
			
		||||
        log.info("OutContractSettlementOp:afterExecuteOperationTransaction-start:"+now);
 | 
			
		||||
        String operation = e.getOperationKey();
 | 
			
		||||
        DynamicObject[] settleBills = e.getDataEntities();
 | 
			
		||||
        List<DynamicObject> settleBillList = Arrays.asList(settleBills);
 | 
			
		||||
        List<DynamicObject> listingEntrys = (List)settleBillList.stream().flatMap((settleBill) -> {
 | 
			
		||||
            //生成的作废单id
 | 
			
		||||
            String billId = ((DynamicObject)settleBillList.get(0)).getString("id");
 | 
			
		||||
            //源单id
 | 
			
		||||
            String invalidbillid = ((DynamicObject)settleBillList.get(0)).getString("zcgj_invalidbillid");
 | 
			
		||||
            DynamicObject bill = BusinessDataServiceHelper.loadSingle(billId, EntityMetadataCache.getDataEntityType("ec_out_contract_settle"));
 | 
			
		||||
            DynamicObject invalidbill = BusinessDataServiceHelper.loadSingle(invalidbillid, EntityMetadataCache.getDataEntityType("ec_out_contract_settle"));
 | 
			
		||||
            boolean isInvalid = bill.getBoolean("zcgj_is_invalid");
 | 
			
		||||
            log.info("OutContractSettlementOp:billId:"+billId+" type:"+bill.getString("zcgj_is_invalid"));
 | 
			
		||||
            if (isInvalid) {
 | 
			
		||||
                return invalidbill.getDynamicObjectCollection("listmodelentry").stream();
 | 
			
		||||
            }else{
 | 
			
		||||
                return null;
 | 
			
		||||
            }
 | 
			
		||||
        }).filter( data-> data !=null )
 | 
			
		||||
                .flatMap((modelObj) -> modelObj.getDynamicObjectCollection("listentry").stream()).collect(Collectors.toList());
 | 
			
		||||
        log.info("OutContractSettlementOp:listingEntrys.size:"+listingEntrys.size());
 | 
			
		||||
        log.info("OutContractSettlementOp:operation:"+operation);
 | 
			
		||||
        if ("audit".equals(operation)) {
 | 
			
		||||
            log.info("OutContractSettlementOp:updateListing");
 | 
			
		||||
            this.updateListing(listingEntrys, false);
 | 
			
		||||
        }
 | 
			
		||||
        log.info("OutContractSettlementOp:afterExecuteOperationTransaction-end:"+now);*/
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void updateListing(List<DynamicObject> listingEntrys, boolean isaudit) {
 | 
			
		||||
        List<DynamicObject> listingArr = new ArrayList();
 | 
			
		||||
        BigDecimal coefficient;
 | 
			
		||||
        if (isaudit) {
 | 
			
		||||
            coefficient = BigDecimal.ONE;
 | 
			
		||||
        } else {
 | 
			
		||||
            coefficient = BigDecimal.valueOf(-1L);
 | 
			
		||||
        }
 | 
			
		||||
        log.info("OutContractSettlementOp:coefficient:"+coefficient);
 | 
			
		||||
        log.info("OutContractSettlementOp:forEach-start");
 | 
			
		||||
        listingEntrys.forEach((obj) -> {
 | 
			
		||||
            log.info("OutContractSettlementOp:forEach---");
 | 
			
		||||
 | 
			
		||||
            BigDecimal thisQty = coefficient.multiply(obj.getBigDecimal("thisqty"));
 | 
			
		||||
            BigDecimal thisOfTaxAmount = coefficient.multiply(obj.getBigDecimal("thisoftaxmount"));
 | 
			
		||||
            DynamicObject listing = obj.getDynamicObject("listing");
 | 
			
		||||
            String listingId = listing.getString("id");
 | 
			
		||||
            DynamicObject listingObj = BusinessDataServiceHelper.loadSingle(listingId, "ec_outtreelisting");
 | 
			
		||||
            listingObj.set("lstsettleqty", thisQty.add(listingObj.getBigDecimal("lstsettleqty")));
 | 
			
		||||
            listingObj.set("lstsettleoftaxamount", thisOfTaxAmount.add(listingObj.getBigDecimal("lstsettleoftaxamount")));
 | 
			
		||||
            log.info("OutContractSettlementOp:listingObj:"+listingObj.get("lstsettleqty"));
 | 
			
		||||
            log.info("OutContractSettlementOp:lstsettleoftaxamount:"+listingObj.get("lstsettleoftaxamount"));
 | 
			
		||||
            listingArr.add(listingObj);
 | 
			
		||||
 | 
			
		||||
            log.info("OutContractSettlementOp:forEach---");
 | 
			
		||||
        });
 | 
			
		||||
        log.info("OutContractSettlementOp:forEach-end");
 | 
			
		||||
        if (!listingArr.isEmpty()) {
 | 
			
		||||
            SaveServiceHelper.save(((DynamicObject)listingArr.get(0)).getDataEntityType(), listingArr.toArray(new DynamicObject[0]));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue