199 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Java
		
	
	
	
		
		
			
		
	
	
			199 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Java
		
	
	
	
| 
								 | 
							
								package tqq9.lc123.cloud.app.plugin.operate.im;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import kd.bos.dataentity.entity.DynamicObject;
							 | 
						||
| 
								 | 
							
								import kd.bos.dataentity.entity.DynamicObjectCollection;
							 | 
						||
| 
								 | 
							
								import kd.bos.entity.ExtendedDataEntity;
							 | 
						||
| 
								 | 
							
								import kd.bos.entity.ExtendedDataEntitySet;
							 | 
						||
| 
								 | 
							
								import kd.bos.entity.botp.plugin.AbstractConvertPlugIn;
							 | 
						||
| 
								 | 
							
								import kd.bos.entity.botp.plugin.args.AfterConvertEventArgs;
							 | 
						||
| 
								 | 
							
								import kd.bos.logging.Log;
							 | 
						||
| 
								 | 
							
								import kd.bos.logging.LogFactory;
							 | 
						||
| 
								 | 
							
								import kd.bos.orm.query.QCP;
							 | 
						||
| 
								 | 
							
								import kd.bos.orm.query.QFilter;
							 | 
						||
| 
								 | 
							
								import kd.bos.servicehelper.BusinessDataServiceHelper;
							 | 
						||
| 
								 | 
							
								import kd.sdk.plugin.Plugin;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import java.math.BigDecimal;
							 | 
						||
| 
								 | 
							
								import java.util.Date;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * 单据转换插件
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								public class PurOrderPushPurRefundConverPlugin extends AbstractConvertPlugIn implements Plugin {
							 | 
						||
| 
								 | 
							
								    private final static Log logger = LogFactory.getLog(PurOrderPushPurRefundConverPlugin.class);
							 | 
						||
| 
								 | 
							
								    private static String PM_PURREFUNDAPPLYBILL = "pm_purrefundapplybill";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 采购订单下推采购退货申请
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    @Override
							 | 
						||
| 
								 | 
							
								    public void afterConvert(AfterConvertEventArgs e) {
							 | 
						||
| 
								 | 
							
								        super.afterConvert(e);
							 | 
						||
| 
								 | 
							
								        ExtendedDataEntitySet targetExtDataEntitySet = e.getTargetExtDataEntitySet();
							 | 
						||
| 
								 | 
							
								        ExtendedDataEntity[] extendedDataEntities = targetExtDataEntitySet.FindByEntityKey(PM_PURREFUNDAPPLYBILL);
							 | 
						||
| 
								 | 
							
								        for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) {
							 | 
						||
| 
								 | 
							
								            //采购退货申请
							 | 
						||
| 
								 | 
							
								            DynamicObject dataEntity = extendedDataEntity.getDataEntity();
							 | 
						||
| 
								 | 
							
								            DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("billentry");
							 | 
						||
| 
								 | 
							
								            DynamicObject[] im_purinblil = null;
							 | 
						||
| 
								 | 
							
								            for (DynamicObject entry : dynamicObjectCollection) {
							 | 
						||
| 
								 | 
							
								                String mainbillnumber = entry.getString("mainbillnumber");
							 | 
						||
| 
								 | 
							
								                //采购订单
							 | 
						||
| 
								 | 
							
								                im_purinblil = BusinessDataServiceHelper.load("im_purinbill", "id,name,billentry.material,billentry.entryreqorg," +
							 | 
						||
| 
								 | 
							
								                        "billentry.taxrateid,billentry.discounttype,billentry.mainbillentity,billentry.mainbillid,billentry.mainbillnumber,billentry.mainbillentryid," +
							 | 
						||
| 
								 | 
							
								                        "billentry.mainbillentryseq,billentry.entrycreator,billentry.entrycreatetime,billentry.entrymodifier," +
							 | 
						||
| 
								 | 
							
								                        "billentry.entrymodifytime,billentry.linetype,billentry.tqq9_registration,billentry.tqq9_licenseno," +
							 | 
						||
| 
								 | 
							
								                        "billentry.tqq9_brand,billentry.warehouse,billentry.qty,billentry.ispresent," +
							 | 
						||
| 
								 | 
							
								                        "billentry.ownertype,billentry.mversion,billentry.unit2nd,billentry.qtyunit2nd," +
							 | 
						||
| 
								 | 
							
								                        "billentry.auxpty,billentry.discountrate,billentry.price,billentry.priceandtax," +
							 | 
						||
| 
								 | 
							
								                        "billentry.amount,billentry.curamount,billentry.taxamount,billentry.curtaxamount," +
							 | 
						||
| 
								 | 
							
								                        "billentry.discountamount,billentry.amountandtax,billentry.curamountandtax,billentry.returnqty," +
							 | 
						||
| 
								 | 
							
								                        "billentry.returnbaseqty,billentry.tqq9_yyhyflje,billentry.tqq9_yyhwflje,billentry.lotnumber," +
							 | 
						||
| 
								 | 
							
								                        "billentry.tqq9_goods,billentry.tqq9_wmsdetailid,billentry.producedate,billentry.expirydate,creator,createtime,modifier,modifytime,billentry.owner", new QFilter[]{new QFilter("billentry.mainbillnumber", QCP.equals, mainbillnumber).and("billstatus",QCP.equals,"C")});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            BigDecimal zero = BigDecimal.ZERO;
							 | 
						||
| 
								 | 
							
								            dynamicObjectCollection.clear();
							 | 
						||
| 
								 | 
							
								            if(im_purinblil!=null){
							 | 
						||
| 
								 | 
							
								                for (DynamicObject dynamicObject : im_purinblil) {
							 | 
						||
| 
								 | 
							
								                    DynamicObjectCollection billentry = dynamicObject.getDynamicObjectCollection("billentry");
							 | 
						||
| 
								 | 
							
								                    String billid = dynamicObject.getString("id");
							 | 
						||
| 
								 | 
							
								                    for (DynamicObject object : billentry) {
							 | 
						||
| 
								 | 
							
								                        String billentryid = object.getString("id");
							 | 
						||
| 
								 | 
							
								                        DynamicObject material = object.getDynamicObject("material");//物料库存信息
							 | 
						||
| 
								 | 
							
								                        DynamicObject masterid = material.getDynamicObject("masterid");//物料信息
							 | 
						||
| 
								 | 
							
								                        //物料采购信息
							 | 
						||
| 
								 | 
							
								                        DynamicObject bd_materialpurchaseinfo = BusinessDataServiceHelper.loadSingle("bd_materialpurchaseinfo", new QFilter[]{new QFilter("masterid", QCP.equals, masterid.getLong("id"))});
							 | 
						||
| 
								 | 
							
								                         masterid = BusinessDataServiceHelper.loadSingle("bd_material", new QFilter[]{new QFilter("id", QCP.equals, masterid.getLong("id"))});
							 | 
						||
| 
								 | 
							
								                        String materialname = bd_materialpurchaseinfo.getString("masterid.name");//物料名称
							 | 
						||
| 
								 | 
							
								                        DynamicObject baseunit = masterid.getDynamicObject("baseunit");//计量单位
							 | 
						||
| 
								 | 
							
								                        DynamicObject entryreqorg = object.getDynamicObject("entryreqorg");//需求组织
							 | 
						||
| 
								 | 
							
								                        DynamicObject taxrateid = object.getDynamicObject("taxrateid");//税率
							 | 
						||
| 
								 | 
							
								                        String discounttype = object.getString("discounttype");//折扣方式
							 | 
						||
| 
								 | 
							
								                        String mainbillentity = object.getString("mainbillentity");//核心单据实体
							 | 
						||
| 
								 | 
							
								                        String mainbillid = object.getString("mainbillid");//核心单据ID
							 | 
						||
| 
								 | 
							
								                        String mainbillnumber = object.getString("mainbillnumber");//核心单据编号
							 | 
						||
| 
								 | 
							
								                        String mainbillentryid = object.getString("mainbillentryid");//核心单据行ID
							 | 
						||
| 
								 | 
							
								                        String mainbillentryseq = object.getString("mainbillentryseq");//核心单据分录序号
							 | 
						||
| 
								 | 
							
								                        DynamicObject creator = dynamicObject.getDynamicObject("creator");//创建人
							 | 
						||
| 
								 | 
							
								                        Date createtime = dynamicObject.getDate("createtime");//创建时间
							 | 
						||
| 
								 | 
							
								                        DynamicObject modifier = dynamicObject.getDynamicObject("modifier");//修改人
							 | 
						||
| 
								 | 
							
								                        Date modifytime = dynamicObject.getDate("modifytime");//修改时间
							 | 
						||
| 
								 | 
							
								                        DynamicObject linetype = object.getDynamicObject("linetype");//行类型
							 | 
						||
| 
								 | 
							
								                        DynamicObject tqq9_registration = object.getDynamicObject("tqq9_registration");//注册证
							 | 
						||
| 
								 | 
							
								                        String tqq9_licenseno = object.getString("tqq9_licenseno");//许可证
							 | 
						||
| 
								 | 
							
								                        DynamicObject tqq9_brand = masterid.getDynamicObject("tqq9_brand");//品牌
							 | 
						||
| 
								 | 
							
								                        DynamicObject warehouse = object.getDynamicObject("warehouse");//入库仓库
							 | 
						||
| 
								 | 
							
								                        BigDecimal qty = object.getBigDecimal("qty");//数量
							 | 
						||
| 
								 | 
							
								                        Boolean ispresent = object.getBoolean("ispresent");//是否赠品
							 | 
						||
| 
								 | 
							
								                        String ownertype = object.getString("ownertype");//货主类型
							 | 
						||
| 
								 | 
							
								                        DynamicObject owner = object.getDynamicObject("owner");//货主
							 | 
						||
| 
								 | 
							
								                        DynamicObject version = object.getDynamicObject("mversion");//物料版本
							 | 
						||
| 
								 | 
							
								                        DynamicObject unit2nd = object.getDynamicObject("unit2nd");//辅助单位
							 | 
						||
| 
								 | 
							
								                        BigDecimal qtyunit2nd = object.getBigDecimal("qtyunit2nd");//辅助数量
							 | 
						||
| 
								 | 
							
								                        Object auxpty = object.get("auxpty");//辅助属性
							 | 
						||
| 
								 | 
							
								                        BigDecimal discountrate = object.getBigDecimal("discountrate");//单位折扣(率)
							 | 
						||
| 
								 | 
							
								                        BigDecimal price = object.getBigDecimal("price");//单价
							 | 
						||
| 
								 | 
							
								                        BigDecimal priceandtax = object.getBigDecimal("priceandtax");//含税单价
							 | 
						||
| 
								 | 
							
								                        BigDecimal amount = object.getBigDecimal("amount");//金额
							 | 
						||
| 
								 | 
							
								                        BigDecimal curamount = object.getBigDecimal("curamount");//金额(本位币)
							 | 
						||
| 
								 | 
							
								                        BigDecimal taxamount = object.getBigDecimal("taxamount");//税额
							 | 
						||
| 
								 | 
							
								                        BigDecimal curtaxamount = object.getBigDecimal("curtaxamount");//税额(本位币)
							 | 
						||
| 
								 | 
							
								                        BigDecimal discountamount = object.getBigDecimal("discountamount");//优惠(折扣)金额
							 | 
						||
| 
								 | 
							
								                        BigDecimal amountandtax = object.getBigDecimal("amountandtax");//折扣后价税合计
							 | 
						||
| 
								 | 
							
								                        BigDecimal curamountandtax = object.getBigDecimal("curamountandtax");//价税合计(本位币)
							 | 
						||
| 
								 | 
							
								                        BigDecimal returnqty = object.getBigDecimal("returnqty");//退库数量
							 | 
						||
| 
								 | 
							
								                        BigDecimal returnbaseqty = object.getBigDecimal("returnbaseqty");//退库数量
							 | 
						||
| 
								 | 
							
								                        BigDecimal tqq9_yyhyflje = object.getBigDecimal("tqq9_yyhyflje");//有优惠有返利含税单价
							 | 
						||
| 
								 | 
							
								                        BigDecimal tqq9_yyhwflje = object.getBigDecimal("tqq9_yyhwflje");//有优惠无返利含税单价
							 | 
						||
| 
								 | 
							
								                        String lotnumber = object.getString("lotnumber");//批号
							 | 
						||
| 
								 | 
							
								                        DynamicObject tqq9_goods = object.getDynamicObject("tqq9_goods");//商品
							 | 
						||
| 
								 | 
							
								                        String tqq9_wmsdetailid = object.getString("tqq9_wmsdetailid");//WMS分录id
							 | 
						||
| 
								 | 
							
								                        Date producedate = object.getDate("producedate");//生产日期
							 | 
						||
| 
								 | 
							
								                        Date expirydate = object.getDate("expirydate");//生产日期
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                        DynamicObject dynamicObject1 = dynamicObjectCollection.addNew();
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("material",bd_materialpurchaseinfo);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("materialname",materialname);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("unit",baseunit);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("baseunit",baseunit);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("rowclosestatus","A");
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("rowterminatestatus","A");
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("entryreqorg","A");
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("entryreqorg",entryreqorg);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("entryinvcorg",entryreqorg);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("entrysettleorg",entryreqorg);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("taxrateid",taxrateid);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("discounttype",discounttype);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("entrypayorg",entryreqorg);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("mainbillentity",mainbillentity);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("mainbillid",mainbillid);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("mainbillnumber",mainbillnumber);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("mainbillentryid",mainbillentryid);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("mainbillentryseq",mainbillentryseq);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("srcbillentity",mainbillentity);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("srcbillid",mainbillid);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("srcbillnumber",mainbillnumber);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("srcbillentryid",mainbillentryid);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("srcbillentryseq",mainbillentryseq);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("entrycreator",creator);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("entrycreatetime",createtime);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("entrymodifier",modifier);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("entrymodifytime",modifytime);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("linetype",linetype);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_registration",tqq9_registration);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_licenseno",tqq9_licenseno);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_brand",tqq9_brand);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_thck",warehouse);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_kclx","ZP");
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_maxqty",qty);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("qty",qty);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("baseqty",qty);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("ispresent",ispresent);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("ownertype",ownertype);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("owner",owner);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("materialversion",version);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("auxunit",unit2nd);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("auxqty",qtyunit2nd);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("auxpty",auxpty);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("discountrate",discountrate);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("price",price);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("priceandtax",priceandtax);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("amount",amount);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("curamount",curamount);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("taxamount",taxamount);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("curtaxamount",curtaxamount);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("discountamount",discountamount);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("amountandtax",amountandtax);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("curamountandtax",curamountandtax);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("joinqty",zero);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("joinbaseqty",zero);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("returnqty",returnqty);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("returnbaseqty",returnbaseqty);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_yyhyflje",tqq9_yyhyflje);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_yyhwflje",tqq9_yyhwflje);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_ph",lotnumber);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_goods",tqq9_goods);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_inwarebill",dynamicObject);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_inwarebillid",billid);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_inwarebillentryid",billentryid);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_inwarebillentryqty",qty);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_wmsdetailid",tqq9_wmsdetailid);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_productdate",producedate);
							 | 
						||
| 
								 | 
							
								                        dynamicObject1.set("tqq9_expiredate",expirydate);
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |