diff --git a/src/main/java/com/yem/em/bd/ProductsGroup/op/ProductsGroupSave.java b/src/main/java/com/yem/em/bd/ProductsGroup/op/ProductsGroupSave.java new file mode 100644 index 00000000..e30d3c43 --- /dev/null +++ b/src/main/java/com/yem/em/bd/ProductsGroup/op/ProductsGroupSave.java @@ -0,0 +1,21 @@ +package com.yem.em.bd.ProductsGroup.op; + +import com.yem.em.bd.ProductsGroup.validator.BomChangeSavevalidatorEdit; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.AddValidatorsEventArgs; +import kd.bos.entity.plugin.PreparePropertysEventArgs; + +public class ProductsGroupSave extends AbstractOperationServicePlugIn { + + @Override + public void onPreparePropertys(PreparePropertysEventArgs e) { + super.onPreparePropertys(e); + e.getFieldKeys().addAll(this.billEntityType.getAllFields().keySet()); + } + + @Override + public void onAddValidators(AddValidatorsEventArgs e) { + super.onAddValidators(e); + e.addValidator(new BomChangeSavevalidatorEdit()); + } +} diff --git a/src/main/java/com/yem/em/bd/ProductsGroup/validator/BomChangeSavevalidatorEdit.java b/src/main/java/com/yem/em/bd/ProductsGroup/validator/BomChangeSavevalidatorEdit.java new file mode 100644 index 00000000..1beefabd --- /dev/null +++ b/src/main/java/com/yem/em/bd/ProductsGroup/validator/BomChangeSavevalidatorEdit.java @@ -0,0 +1,24 @@ +package com.yem.em.bd.ProductsGroup.validator; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.ExtendedDataEntity; +import kd.bos.entity.validate.AbstractValidator; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; + +public class BomChangeSavevalidatorEdit extends AbstractValidator { + @Override + public void validate() { + ExtendedDataEntity[] dataEntities = this.getDataEntities(); + for (ExtendedDataEntity dataEntitie : dataEntities) { + DynamicObject dataEntity = dataEntitie.getDataEntity(); + long aLong = dataEntity.getLong("id"); + DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(dataEntity.getDataEntityType().getName() + , "id,parent", new QFilter[]{new QFilter("parent.id", QCP.equals, aLong)}); + if (dynamicObject != null) { + this.addMessage(dataEntitie, "当前单有下级,不允许删除!!!"); + } + } + } +} diff --git a/src/main/java/com/yem/wm/es/salesorder/from/SalesOrderPJEdit.java b/src/main/java/com/yem/wm/es/salesorder/from/SalesOrderPJEdit.java index 67122577..202530f5 100644 --- a/src/main/java/com/yem/wm/es/salesorder/from/SalesOrderPJEdit.java +++ b/src/main/java/com/yem/wm/es/salesorder/from/SalesOrderPJEdit.java @@ -283,7 +283,7 @@ public class SalesOrderPJEdit extends AbstractBillPlugIn implements Plugin, Befo ClientUtils.countFrontDisAmt(model, rowIndex);//折扣前金额 ClientUtils.addSaAmountTk(model, rowIndex);//销售金额(价格条款)结算币别 ClientUtils.countAfterFrontPrice(model, rowIndex);//折扣后销售单价 - calculateCostSharing(model); +// calculateCostSharing(model); break; case "yem_fobprice": ClientUtils.countFobAmt(model, rowIndex);//fob金额 @@ -381,11 +381,11 @@ public class SalesOrderPJEdit extends AbstractBillPlugIn implements Plugin, Befo // calculateCostSharing(model); ClientUtils.addSaAmountTk(model, rowIndex);//销售金额(价格条款)结算币别 break; - case "yem_sharethecost": - case "yem_sumedamount": -// - calculateCostSharing(model); - break; +// case "yem_sharethecost": +// case "yem_sumedamount": +//// +//// calculateCostSharing(model); +// break; } } diff --git a/src/main/java/com/yem/wm/es/salesorder/from/SalesOrderZJEdit.java b/src/main/java/com/yem/wm/es/salesorder/from/SalesOrderZJEdit.java index 3006e899..6719802d 100644 --- a/src/main/java/com/yem/wm/es/salesorder/from/SalesOrderZJEdit.java +++ b/src/main/java/com/yem/wm/es/salesorder/from/SalesOrderZJEdit.java @@ -371,7 +371,16 @@ public class SalesOrderZJEdit extends AbstractBillPlugIn implements Plugin, Befo ClientUtils.calculateCreditAmount(rowIndex, model);//信保费 ClientUtils.calculateBankInterestCharges(rowIndex, model);//银行利息费 break; - + case"yem_e_landcarrycost": + case"yem_e_airliftcost": + case"yem_portamt": + case"yem_inlandtransportation": + case"yem_e_bankcost": + case"yem_e_elsecost": + case"yem_costsinclude": + case"yem_e_interestrate": + ClientUtils.calculateBankInterestCharges(rowIndex, model);//银行利息费 + break; case "yem_onecarsum": ClientUtils.countFrontDisPrice(model, rowIndex);//折扣前单价 // ClientUtils.totalSaFobAmount(model, "yem_es_materialinfo", "yem_ifgift", "yem_onecarsum", "yem_sumcost");//单车总费用 汇总表头 总费用 @@ -525,9 +534,6 @@ public class SalesOrderZJEdit extends AbstractBillPlugIn implements Plugin, Befo ClientUtils.calculateCreditAmount(rowIndex, model);//信保费 ClientUtils.calculateBankInterestCharges(rowIndex, model);//银行利息费 break; - case "yem_e_interestrate"://利息率% - ClientUtils.calculateBankInterestCharges(rowIndex, model);//银行利息费 - break; case "yem_e_interestamt"://银行利息费 ClientUtils.calculateCreditAmount(rowIndex, model);//信保费 break; diff --git a/src/main/java/com/yem/wm/im/clientdemand/utils/ClientUtils.java b/src/main/java/com/yem/wm/im/clientdemand/utils/ClientUtils.java index 493759d7..99a827d8 100644 --- a/src/main/java/com/yem/wm/im/clientdemand/utils/ClientUtils.java +++ b/src/main/java/com/yem/wm/im/clientdemand/utils/ClientUtils.java @@ -53,19 +53,21 @@ public class ClientUtils { if (!yem_linetype.equals("add")) { boolean tor = true; DynamicObjectCollection yemMulticonfig = temp.getDynamicObjectCollection("yem_multiconfig"); - if (!yemMulticonfig.isEmpty()){ + if (!yemMulticonfig.isEmpty()) { for (DynamicObject dynamicObject : yemMulticonfig) { String yemLinetypes = dynamicObject.getString("yem_linetypes"); - if ("add".equals(yemLinetypes)){ - tor= false; + if ("add".equals(yemLinetypes)) { + tor = false; } } } - if (tor){ + if (tor) { rowInfo++; continue; } } + } else { + yem_linetype = "add"; } //多功能配置分录行获取 DynamicObjectCollection multiconfig = null; @@ -158,19 +160,21 @@ public class ClientUtils { } } } - if ("yem_es_xsalesorder".equals(models.getDataEntityType().getName())){ + if ("yem_es_xsalesorder".equals(models.getDataEntityType().getName())) { int multiconfigIndex = 0; if (!multiconfig.isEmpty()) { for (DynamicObject dc : multiconfig) { - if ("add".equals(dc.getString("yem_linetypes"))){ + if ("add".equals(dc.getString("yem_linetypes"))) { long configentryid = dc.getLong("yem_configentryid"); BigDecimal configentry = dataMap.get(configentryid) == null ? BigDecimal.ZERO : dataMap.get(configentryid).setScale(2); models.setValue("yem_marketraisepribase", configentry, multiconfigIndex, rowInfo); multiconfigIndex++; + } else { + multiconfigIndex++; } } } - }else { + } else { setPriceNow(multiconfig, dataMap, rowInfo, models); } } @@ -202,7 +206,7 @@ public class ClientUtils { else if (("yem_im_clientdeman_zj".equals(yem_billtype) || "yem_im_inclientdeman_zj".equals(yem_billtype) || ("yem_es_salesorder_ZJ".equals(yem_billtype)) || "yem_es_salesorder_nmzj".equals(yem_billtype) || "yem_es_xsalesorder_zj".equals(yem_billtype) || "yem_es_xsalesorder_nmzj".equals(yem_billtype)) - && "P".equals(businesssort) && !yem_linetype.equals("add")) { + && "P".equals(businesssort) && yem_linetype.equals("add")) { // else if (("yem_im_clientdeman_zj".equals(yem_billtype) || "yem_im_inclientdeman_zj".equals(yem_billtype) || ("yem_es_salesorder_ZJ".equals(yem_billtype)) || "yem_es_salesorder_nmzj".equals(yem_billtype)) && "P".equals(businesssort)) { pjFindPrice(yem_exrate, info, pjDatas, rowInfo, list, materials, models, yemBdProductsid); } @@ -212,7 +216,7 @@ public class ClientUtils { else if (("yem_im_clientdema_pj".equals(yem_billtype) || "yem_im_inclientdema_pj".equals(yem_billtype) || "yem_es_salesorder_PJ".equals(yem_billtype) || "yem_es_salesorder_nmpj".equals(yem_billtype) || "yem_es_xsalesorder_pj".equals(yem_billtype) || "yem_es_xsalesorder_nmpj".equals(yem_billtype)) - && "P".equals(businesssort)&& !yem_linetype.equals("add")) { + && "P".equals(businesssort) && yem_linetype.equals("add")) { pjFindPrice(yem_exrate, info, pjDatas, rowInfo, list, materials, models, yemBdProductsid); } rowInfo++; @@ -366,7 +370,15 @@ public class ClientUtils { * 获取标准价中 给当前行标准销售加价赋值 */ public static void setPriceNow(DynamicObjectCollection multiconfig, Map dataMap, int rowInfo, IDataModel models) { - + int multiconfigIndex = 0; + if (!multiconfig.isEmpty()) { + for (DynamicObject dc : multiconfig) { + long configentryid = dc.getLong("yem_configentryid"); + BigDecimal configentry = dataMap.get(configentryid) == null ? BigDecimal.ZERO : dataMap.get(configentryid).setScale(2); + models.setValue("yem_marketraisepribase", configentry, multiconfigIndex, rowInfo); + multiconfigIndex++; + } + } } /** @@ -1489,22 +1501,47 @@ public class ClientUtils { private static void doCalculateBankInterestCharges(int rowIdx, IDataModel model) { BigDecimal safobprice = (BigDecimal) model.getValue("yem_safobprice", rowIdx);//销售FOB单价 BigDecimal seafreight = (BigDecimal) model.getValue("yem_e_seafreight", rowIdx);//海运费 + BigDecimal yemELandcarrycost = (BigDecimal) model.getValue("yem_e_landcarrycost", rowIdx);//国际陆运费 + BigDecimal yemEAirliftcost = (BigDecimal) model.getValue("yem_e_airliftcost", rowIdx);//空运费 + BigDecimal yemPortamt = (BigDecimal) model.getValue("yem_portamt", rowIdx);//港杂费 + BigDecimal yemInlandtransportation = (BigDecimal) model.getValue("yem_inlandtransportation", rowIdx);//内陆运输费 + BigDecimal yemEBankcost = (BigDecimal) model.getValue("yem_e_bankcost", rowIdx);//报关费 + BigDecimal yemEElsecost = (BigDecimal) model.getValue("yem_e_elsecost", rowIdx);//其他费用 + BigDecimal yemCostsinclude = (BigDecimal) model.getValue("yem_costsinclude", rowIdx);//费用包干 BigDecimal marinsupreamt = (BigDecimal) model.getValue("yem_e_marinsupreamt", rowIdx);//保险费 BigDecimal interestrate = (BigDecimal) model.getValue("yem_e_interestrate", rowIdx);//利息率% interestrate = BigDecimalUtils.div(interestrate, new BigDecimal("100"), 10); BigDecimal calculate = BigDecimal.ZERO; + BigDecimal interestdays = BigDecimal.ZERO; + BigDecimal yem_sinosurerate = BigDecimal.ZERO; int rowCount = model.getEntryRowCount("yem_es_salescontrac_s"); for (int i = 0; i < rowCount; i++) { String issinosure = (String) model.getValue("yem_issinosure", i); if ("A".equals(issinosure)) { BigDecimal raprate = (BigDecimal) model.getValue("yem_raprate", i);//收汇百分比% - BigDecimal interestdays = (BigDecimal) model.getValue("yem_interestdays", i);//利息天数 - raprate = BigDecimalUtils.div(raprate, new BigDecimal("100"), 10); - BigDecimal multiply = BigDecimalUtils.div(safobprice.add(seafreight).add(marinsupreamt).multiply(raprate).multiply(interestrate), new BigDecimal("360"), 10).multiply(interestdays); - calculate = calculate.add(multiply); + interestdays = interestdays.add((BigDecimal) model.getValue("yem_interestdays", i));//利息天数 + yem_sinosurerate = yem_sinosurerate.add((BigDecimal) model.getValue("yem_sinosurerate", i));//利息天数 +// raprate = BigDecimalUtils.div(raprate, new BigDecimal("100"), 10); +// BigDecimal multiply = BigDecimalUtils.div(safobprice.add(seafreight).add(marinsupreamt).multiply(raprate).multiply(interestrate), new BigDecimal("360"), 10).multiply(interestdays); + calculate = calculate.add(raprate); } } - model.setValue("yem_e_interestamt", calculate.setScale(0, RoundingMode.UP), rowIdx); + BigDecimal yem_e_interestamt = safobprice.add(seafreight).add(yemELandcarrycost).add(yemEAirliftcost).add(yemPortamt) + .add(yemInlandtransportation).add(yemEBankcost).add(yemEElsecost).add(yemCostsinclude).add(marinsupreamt); +// yem_e_interestamt = yem_e_interestamt.multiply(calculate).multiply(interestdays).multiply(interestrate.divide(new BigDecimal("100"),10).divide(new BigDecimal("360"),10)); + BigDecimal multiply = BigDecimalUtils.multiply(yem_e_interestamt, calculate, 10); + multiply = BigDecimalUtils.multiply(multiply, interestdays, 10); + multiply = BigDecimalUtils.multiply(multiply, interestrate, 10); + multiply = BigDecimalUtils.div(multiply, new BigDecimal(100), 10); + multiply = BigDecimalUtils.div(multiply, new BigDecimal(360), 10); +// BigDecimalUtils.div(yem_e_interestamt, new BigDecimal("100"), 10); + BigDecimal setScale = multiply.setScale(0, RoundingMode.UP); + model.setValue("yem_e_interestamt", setScale, rowIdx); + BigDecimal yem_e_creditamt = BigDecimalUtils.multiply(yem_e_interestamt,calculate,10); + yem_e_creditamt= BigDecimalUtils.multiply(yem_e_creditamt,yem_sinosurerate,10); + yem_e_creditamt = BigDecimalUtils.div(yem_e_creditamt, new BigDecimal(100),10); + yem_e_creditamt = BigDecimalUtils.div(yem_e_creditamt, new BigDecimal(100),10); + model.setValue("yem_e_creditamt", yem_e_creditamt, rowIdx); } /** @@ -1999,13 +2036,13 @@ public class ClientUtils { int rowCount = model.getEntryRowCount("yem_es_materialinfo"); for (int i = 0; i < rowCount; i++) { DynamicObject d = c.get(i); - if (string.equals("yem_es_xsalesorder")){ + if (string.equals("yem_es_xsalesorder")) { String yemLinetype = d.getString("yem_linetype"); - if (!"add".equals(yemLinetype)){ + if (!"add".equals(yemLinetype)) { continue; } } - if (!"Z".equals(d.getString("yem_businesssort"))){ + if (!"Z".equals(d.getString("yem_businesssort"))) { continue; } DynamicObjectCollection subC = d.getDynamicObjectCollection("yem_multiconfig"); diff --git a/src/main/java/com/yem/wm/im/delivernotice/op/DeliverNoticeAssAuditOpEdit.java b/src/main/java/com/yem/wm/im/delivernotice/op/DeliverNoticeAssAuditOpEdit.java index 7a0dbf3d..3738ce38 100644 --- a/src/main/java/com/yem/wm/im/delivernotice/op/DeliverNoticeAssAuditOpEdit.java +++ b/src/main/java/com/yem/wm/im/delivernotice/op/DeliverNoticeAssAuditOpEdit.java @@ -93,7 +93,7 @@ public class DeliverNoticeAssAuditOpEdit extends AbstractOperationServicePlugIn String yemVehicleno = salesorder_z.getString("yem_vehicleno"); if (map.size() > 0) { if (map.get(yemVehicleno) == null) { - DynamicObject adddevicefiles = adddevicefiles(dataEntitie,materialinfo, salesorder_z); + DynamicObject adddevicefiles = adddevicefiles(dataEntitie, materialinfo, salesorder_z); OperationResult Operate = OperationServiceHelper.executeOperate("save", adddevicefiles.getDynamicObjectType().getName(), new DynamicObject[]{adddevicefiles}, OperateOption.create()); if (Operate.isSuccess()) { @@ -101,7 +101,7 @@ public class DeliverNoticeAssAuditOpEdit extends AbstractOperationServicePlugIn } } } else { - DynamicObject adddevicefiles = adddevicefiles(dataEntitie,materialinfo, salesorder_z); + DynamicObject adddevicefiles = adddevicefiles(dataEntitie, materialinfo, salesorder_z); OperationResult Operate = OperationServiceHelper.executeOperate("save", adddevicefiles.getDynamicObjectType().getName(), new DynamicObject[]{adddevicefiles}, OperateOption.create()); if (Operate.isSuccess()) { @@ -113,7 +113,7 @@ public class DeliverNoticeAssAuditOpEdit extends AbstractOperationServicePlugIn SaveServiceHelper.save(new DynamicObject[]{dataEntitie}); } - public DynamicObject adddevicefiles(DynamicObject dataEntitie,DynamicObject materialinfo, DynamicObject submaterialinfo) { + public DynamicObject adddevicefiles(DynamicObject dataEntitie, DynamicObject materialinfo, DynamicObject submaterialinfo) { String yem_vehicleno = submaterialinfo.getString("yem_vehicleno"); String yem_conbillnumber = materialinfo.getString("yem_conbillnumber");//合同编号 BigDecimal yem_qty = materialinfo.getBigDecimal("yem_qty"); @@ -233,11 +233,14 @@ public class DeliverNoticeAssAuditOpEdit extends AbstractOperationServicePlugIn public Date Getmachinedata(String yem_framenumber, DynamicObject yemResourcescode) { String Queryfield = AtlasUtils.Queryfield("PLAN_PIN", "INSTRUCTION_CODE", "JOB_TIME", "INSTRUCTION_NAME"); String sql = "select distinct " + Queryfield + " from VIEW_PLAN_JOB_WM where INSTRUCTION_NAME='上线' and PLAN_PIN='" + yem_framenumber + "'";//where TO_CHAR (enable_time, 'yyyy-mm-dd') >= '2023-01-01' - List fromCmmp = RequestCmmp.getFromCmmp(0L, sql, yemResourcescode.getDynamicObject("yem_productsgroup").getLong("id")); - if (fromCmmp.size() > 0) { - Map map = fromCmmp.get(0); - Date job_time = (Date) map.get("job_time"); - return job_time; + DynamicObject yemProductsgroup = yemResourcescode.getDynamicObject("yem_productsgroup"); + if (yemProductsgroup != null) { + List fromCmmp = RequestCmmp.getFromCmmp(0L, sql, yemProductsgroup.getLong("id")); + if (fromCmmp.size() > 0) { + Map map = fromCmmp.get(0); + Date job_time = (Date) map.get("job_time"); + return job_time; + } } return null; } @@ -246,11 +249,14 @@ public class DeliverNoticeAssAuditOpEdit extends AbstractOperationServicePlugIn public static Date Getanalysistdate(String yem_framenumber, DynamicObject yemResourcescode) { String Queryfield = AtlasUtils.Queryfield("plmlastupdate"); String sql = "select distinct " + Queryfield + " from VIEW_ANALYZE_TIME_WM where plan_pin='" + yem_framenumber + "'";//where TO_CHAR (enable_time, 'yyyy-mm-dd') >= '2023-01-01' - List fromCmmp = RequestCmmp.getFromCmmp(0L, sql, yemResourcescode.getDynamicObject("yem_productsgroup").getLong("id")); - if (fromCmmp.size() > 0) { - Map map = fromCmmp.get(0); - Date job_time = (Date) map.get("plmlastupdate"); - return job_time; + DynamicObject yemProductsgroup = yemResourcescode.getDynamicObject("yem_productsgroup"); + if (yemProductsgroup != null) { + List fromCmmp = RequestCmmp.getFromCmmp(0L, sql, yemProductsgroup.getLong("id")); + if (fromCmmp.size() > 0) { + Map map = fromCmmp.get(0); + Date job_time = (Date) map.get("plmlastupdate"); + return job_time; + } } return null; } diff --git a/src/main/java/com/yem/wm/syn/eas/YemDelivernoticeService.java b/src/main/java/com/yem/wm/syn/eas/YemDelivernoticeService.java index c1b9ab3f..b00342d4 100644 --- a/src/main/java/com/yem/wm/syn/eas/YemDelivernoticeService.java +++ b/src/main/java/com/yem/wm/syn/eas/YemDelivernoticeService.java @@ -3,6 +3,7 @@ package com.yem.wm.syn.eas; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.yem.wm.utils.BigDecimalUtils; import com.yem.wm.utils.RequestEAS; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; @@ -316,11 +317,13 @@ public class YemDelivernoticeService extends AbstractOperationServicePlugIn { //实际含税单价 json.put("price", materialentry.getBigDecimal("yem_priceandtax")); //金额 - json.put("nonTaxAmount", materialentry.getBigDecimal("yem_amt")); + BigDecimal yemAmt = materialentry.getBigDecimal("yem_amt"); + json.put("nonTaxAmount", BigDecimalUtils.div(yemAmt,1,2)); //金额本位币 json.put("localNonTaxAmount", materialentry.getBigDecimal("yem_locamt")); //税额 - json.put("tax", materialentry.getBigDecimal("yem_taxamount")); + BigDecimal yemTaxamount = materialentry.getBigDecimal("yem_taxamount"); + json.put("tax", BigDecimalUtils.div(yemTaxamount,1,2)); //税额本位币 json.put("localTax", materialentry.getBigDecimal("yem_curtaxamount")); //价税合计 diff --git a/src/main/java/kd/cosmic/Application.java b/src/main/java/kd/cosmic/Application.java index b30a4f27..da9708ed 100644 --- a/src/main/java/kd/cosmic/Application.java +++ b/src/main/java/kd/cosmic/Application.java @@ -17,17 +17,17 @@ public class Application { cosmic.setWebPath("E:/Cosmic/Comics_YXZG/YXZG-server/webapp"); ////152 - cosmic.setClusterNumber("yxzg-topview-dev"); - cosmic.setTenantNumber("yxzg-topview-dev"); - cosmic.setServerIP("10.64.112.152"); - cosmic.setFileServerPathIPAndPort("", ""); - cosmic.setConfigUrl("10.64.112.152:2181", "zookeeper", "Cosmic@5092"); +// cosmic.setClusterNumber("yxzg-topview-dev"); +// cosmic.setTenantNumber("yxzg-topview-dev"); +// cosmic.setServerIP("10.64.112.152"); +// cosmic.setFileServerPathIPAndPort("", ""); +// cosmic.setConfigUrl("10.64.112.152:2181", "zookeeper", "Cosmic@5092"); System.setProperty("mq.debug.queue.tag", "wrxtest"); ////134 -// cosmic.setClusterNumber("yxzg-prod"); -// cosmic.setTenantNumber("yxzg-prod"); -// cosmic.setServerIP("10.64.111.134"); -// cosmic.setConfigUrl("10.64.111.134:2181","zookeeper","d@f*g:SGVsbG8==U4HRwjlqTOp0p9b60T+T8D2fQ8ThQgJLu/qgfLyLgknPa2RwYXNzd29yZA=="); + cosmic.setClusterNumber("yxzg-prod"); + cosmic.setTenantNumber("yxzg-prod"); + cosmic.setServerIP("10.64.111.134"); + cosmic.setConfigUrl("10.64.111.134:2181","zookeeper","d@f*g:SGVsbG8==U4HRwjlqTOp0p9b60T+T8D2fQ8ThQgJLu/qgfLyLgknPa2RwYXNzd29yZA=="); cosmic.setStartWithQing(false); cosmic.start();