103 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Java
		
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Java
		
	
	
	
package tqq9.lc123.cloud.app.plugin.operate.sys;
 | 
						|
 | 
						|
import kd.bos.dataentity.OperateOption;
 | 
						|
import kd.bos.dataentity.entity.DynamicObject;
 | 
						|
import kd.bos.entity.operate.result.IOperateInfo;
 | 
						|
import kd.bos.entity.operate.result.OperationResult;
 | 
						|
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
 | 
						|
import kd.bos.entity.plugin.args.AfterOperationArgs;
 | 
						|
import kd.bos.orm.query.QFilter;
 | 
						|
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
						|
import kd.bos.servicehelper.operation.OperationServiceHelper;
 | 
						|
 | 
						|
import java.math.BigDecimal;
 | 
						|
import java.util.List;
 | 
						|
 | 
						|
/**
 | 
						|
 * 物料审核操作
 | 
						|
 *      审核成功后,生成对应的商城商品
 | 
						|
 */
 | 
						|
public class MaterialAuditOp extends AbstractOperationServicePlugIn {
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void afterExecuteOperationTransaction(AfterOperationArgs e) {
 | 
						|
        super.afterExecuteOperationTransaction(e);
 | 
						|
        OperationResult operationResult = this.getOperationResult();
 | 
						|
        if (operationResult.isSuccess()){
 | 
						|
            DynamicObject[] dataEntities = e.getDataEntities();
 | 
						|
            for (DynamicObject material : dataEntities) {
 | 
						|
                material = BusinessDataServiceHelper.loadSingle(material.getPkValue(), "bd_material",
 | 
						|
                        "id,name,number,baseunit,tqq9_spfliii,tqq9_combofield_spflii,tqq9_combofield_spfliii,tqq9_ssbm,tqq9_zccpmc,tqq9_brand,tqq9_wlcd1,tqq9_ylfl,tqq9_spdj,tqq9_ccystj,tqq9_ylflml");
 | 
						|
                Long materialID = material.getLong("id");
 | 
						|
                DynamicObject goods = null;
 | 
						|
                //查询对应的商品是否存在
 | 
						|
                QFilter f = new QFilter("tqq9_mater.id", "=", materialID);
 | 
						|
                DynamicObject[] goodsArr = BusinessDataServiceHelper.load("tqq9_goodspackage", "id", new QFilter[]{f});
 | 
						|
                if (goodsArr != null && goodsArr.length > 0){
 | 
						|
                    goods = goodsArr[0];
 | 
						|
                    goods = BusinessDataServiceHelper.loadSingle(goods.getPkValue(), goods.getDynamicObjectType().getName());
 | 
						|
                }else {
 | 
						|
                    goods = BusinessDataServiceHelper.newDynamicObject("tqq9_goodspackage");
 | 
						|
                    goods.set("number", material.getString("number"));
 | 
						|
                    goods.set("tqq9_mater", material);
 | 
						|
                }
 | 
						|
                //创建组织-默认励齿集团
 | 
						|
                DynamicObject createorg = null;
 | 
						|
                f = new QFilter("number", "=", "LICHI");
 | 
						|
                DynamicObject[] orgArr = BusinessDataServiceHelper.load("bos_org", "id,name,number", new QFilter[]{f});
 | 
						|
                if(orgArr != null && orgArr.length > 0){
 | 
						|
                    createorg = orgArr[0];
 | 
						|
                }
 | 
						|
                //币种-默认CNY
 | 
						|
                DynamicObject currency = null;
 | 
						|
                f = new QFilter("number", "=", "CNY");
 | 
						|
                DynamicObject[] currencyArr = BusinessDataServiceHelper.load("bd_currency", "id,name,number", new QFilter[]{f});
 | 
						|
                if(currencyArr != null && currencyArr.length > 0){
 | 
						|
                    currency = currencyArr[0];
 | 
						|
                }
 | 
						|
                //查询税率和税率基础资料
 | 
						|
                DynamicObject tqq9_ssbm = material.getDynamicObject("tqq9_ssbm");
 | 
						|
                tqq9_ssbm = BusinessDataServiceHelper.loadSingle(tqq9_ssbm.getPkValue(), tqq9_ssbm.getDynamicObjectType().getName(),"id,name,number,taxrate");
 | 
						|
                BigDecimal taxrate = tqq9_ssbm.getBigDecimal("taxrate");
 | 
						|
                if(taxrate != null){
 | 
						|
                    goods.set("tqq9_saletaxdcm", taxrate);
 | 
						|
                    QFilter f1 = new QFilter("taxrate", "=", taxrate.multiply(new BigDecimal(100)));
 | 
						|
                    DynamicObject[] bd_taxratesArr = BusinessDataServiceHelper.load("bd_taxrate", "id,number,name,taxrate", new QFilter[]{f1});
 | 
						|
                    goods.set("tqq9_saletaxrate", bd_taxratesArr[0]);
 | 
						|
                }
 | 
						|
 | 
						|
                //给商品信息赋值
 | 
						|
                goods.set("createorg", createorg);
 | 
						|
                goods.set("name", material.getString("name"));
 | 
						|
                goods.set("tqq9_regproname", material.getString("tqq9_zccpmc"));
 | 
						|
                goods.set("tqq9_platform", "A,B,C");//平台
 | 
						|
                goods.set("tqq9_brand", material.getDynamicObject("tqq9_brand"));
 | 
						|
                goods.set("tqq9_wlcd", material.getDynamicObject("tqq9_wlcd1"));
 | 
						|
                goods.set("tqq9_taxno", tqq9_ssbm);
 | 
						|
                goods.set("tqq9_medicaltype", material.getString("tqq9_ylfl"));
 | 
						|
                goods.set("tqq9_level", material.getString("tqq9_spdj"));
 | 
						|
                goods.set("tqq9_currency", currency);//币种
 | 
						|
                goods.set("tqq9_onsale", "B");
 | 
						|
                goods.set("tqq9_saleunit", material.getDynamicObject("baseunit"));//销售单位
 | 
						|
                goods.set("tqq9_keepcondition", material.getString("tqq9_ccystj"));
 | 
						|
                goods.set("tqq9_medicalclass", material.getDynamicObject("tqq9_ylflml"));
 | 
						|
                goods.set("tqq9_skutype2", material.getString("tqq9_combofield_spflii"));
 | 
						|
                goods.set("tqq9_ckutype3", material.getString("tqq9_combofield_spfliii"));
 | 
						|
                goods.set("tqq9_skutype4", material.getString("tqq9_spfliii"));
 | 
						|
                goods.set("tqq9_isauto", true);
 | 
						|
                goods.set("enable", "1");
 | 
						|
                OperationResult operationResult1 = OperationServiceHelper.executeOperate("save", "tqq9_goodspackage", new DynamicObject[]{goods}, OperateOption.create());
 | 
						|
                if(!operationResult1.isSuccess()){
 | 
						|
                    List<IOperateInfo> allErrorOrValidateInfo = operationResult1.getAllErrorOrValidateInfo();
 | 
						|
                    for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
 | 
						|
                        iOperateInfo.getMessage();
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
    }
 | 
						|
}
 |