package shkd.repc.recon.opplugin;

import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.args.AfterOperationArgs;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * 产值
 */
public class WorkloadcfSubmitOPPlugin extends AbstractOperationServicePlugIn {

    @Override
    public void afterExecuteOperationTransaction(AfterOperationArgs e) {
        super.afterExecuteOperationTransaction(e);

        String operationKey = e.getOperationKey();
        if ("submit".equals(operationKey)){
            DynamicObject[] dataEntities = e.getDataEntities();
            DynamicObject dataEntity = dataEntities[0];
            dataEntity = BusinessDataServiceHelper.loadSingle(dataEntity.getPkValue(), "recon_workloadcfmbill");
            BigDecimal latestoriprice = dataEntity.getBigDecimal("latestoriprice"); // 合同最新造价
            BigDecimal sumworkloadamt = dataEntity.getBigDecimal("sumworkloadamt"); // 累计已完成产值(含税)

            BigDecimal result = BigDecimal.ZERO; // 初始化结果
            if (latestoriprice != null && latestoriprice.compareTo(BigDecimal.ZERO) != 0) { // 确保价格不为0且不为null
                if (sumworkloadamt != null && sumworkloadamt.compareTo(BigDecimal.ZERO) != 0) { // 确保累计已完成产值不为0且不为null
                    // 计算: (sumworkloadamt / latestoriprice) * 100
                    result = sumworkloadamt.divide(latestoriprice, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); // 四舍五入到10位小数, 乘以100
                }
            }
            dataEntity.set("qeug_czzb", result); // 累计已完成产值占比
            SaveServiceHelper.save(new DynamicObject[]{dataEntity});
        }
    }
}