支出合同结算多出合同支付项bug调整(未完成)
This commit is contained in:
parent
92a166b316
commit
8a588d1ad0
|
@ -1,16 +1,28 @@
|
||||||
package zcgj.zcdev.zcdev.pr.plugin.operate;
|
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.operate.result.OperationResult;
|
||||||
import kd.bos.entity.plugin.AddValidatorsEventArgs;
|
import kd.bos.entity.plugin.AddValidatorsEventArgs;
|
||||||
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
import kd.bos.entity.plugin.PreparePropertysEventArgs;
|
||||||
|
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||||
import kd.bos.entity.validate.AbstractValidator;
|
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.basedata.business.model.BaseConstant;
|
||||||
import kd.ec.contract.opplugin.OutContractSettleOp;
|
import kd.ec.contract.opplugin.OutContractSettleOp;
|
||||||
import kd.ec.contract.opplugin.validator.OutContractSettleValidator;
|
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.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class OutContractSettlementOp extends OutContractSettleOp {
|
public class OutContractSettlementOp extends OutContractSettleOp {
|
||||||
|
private static final Log log = LogFactory.getLog(OutContractSettlementOp.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||||
|
@ -18,6 +30,7 @@ public class OutContractSettlementOp extends OutContractSettleOp {
|
||||||
List<String> fields = e.getFieldKeys();
|
List<String> fields = e.getFieldKeys();
|
||||||
fields.add("zcgj_is_reversabillid");
|
fields.add("zcgj_is_reversabillid");
|
||||||
fields.add("zcgj_is_invalid");
|
fields.add("zcgj_is_invalid");
|
||||||
|
fields.add("zcgj_invalidbillid");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -38,4 +51,74 @@ public class OutContractSettlementOp extends OutContractSettleOp {
|
||||||
super.initializeOperationResult(result);
|
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