From 400242cc2f21a0c815b276b7fb241947be607943 Mon Sep 17 00:00:00 2001 From: xiaoshi <2272816786@qq.com> Date: Tue, 29 Jul 2025 11:29:37 +0800 Subject: [PATCH] youhua --- .../pr/task/EquipmentCardTaskPlugin.java | 136 ++++++++++++------ 1 file changed, 91 insertions(+), 45 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/task/EquipmentCardTaskPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/task/EquipmentCardTaskPlugin.java index 4bd9830..d456b2d 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/task/EquipmentCardTaskPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/task/EquipmentCardTaskPlugin.java @@ -2,6 +2,8 @@ package zcgj.zcdev.zcdev.pr.task; import kd.bos.algo.DataSet; import kd.bos.algo.Row; +import kd.bos.coderule.api.CodeRuleInfo; +import kd.bos.coderule.service.cache.CodeRuleCache; import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; @@ -15,6 +17,7 @@ import kd.bos.orm.query.QFilter; import kd.bos.schedule.executor.AbstractTask; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.QueryServiceHelper; +import kd.bos.servicehelper.coderule.CodeRuleServiceHelper; import kd.bos.servicehelper.operation.OperationServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; import zcgj.zcdev.zcdev.pr.plugin.form.AdjustAmountOftaxBillPlugin; @@ -36,17 +39,20 @@ public class EquipmentCardTaskPlugin extends AbstractTask { @Override public void execute(RequestContext requestContext, Map map) throws KDException {//同步资产卡片 List strings = new ArrayList<>(); - strings.add("100104"); - strings.add("100113"); - strings.add("100105"); - strings.add("100109"); - strings.add("100112"); + DynamicObject[] equipmenttype = BusinessDataServiceHelper.load("zcgj_equipmenttype", "number,zcgj_assetcat.number",null); + for (DynamicObject dynamicObject : equipmenttype) { + String number = dynamicObject.getString("zcgj_assetcat.number"); + if (number.isEmpty() && number!=null){ + strings.add(number) ; + } + } QFilter qFilter = new QFilter("assetcat.number", QCP.in, strings); - DynamicObject[] realcards = BusinessDataServiceHelper.load("fa_card_real", "number,assetname,model,realaccountdate,assetunit,supplier,zcgj_platenumber,unit,zcgj_manufacturer,zcgj_prodate,storeplace,creator,createtime,modifier,modifytime,auditdate,auditor", new QFilter[]{qFilter}); + DynamicObject[] realcards = BusinessDataServiceHelper.load("fa_asset_card", "zcgj_costcenter,headusedept,finentry,assetcat,number,assetname,model,realaccountdate,assetunit,supplier,zcgj_platenumber,unit,zcgj_manufacturer,zcgj_prodate,storeplace,creator,createtime,modifier,modifytime,auditdate,auditor", new QFilter[]{qFilter}); for (DynamicObject realcard : realcards) { String number = realcard.getString("number");//资产编码 +// DynamicObject assetcat = realcard.getDynamicObject("assetcat");//资产类别 String assetname = realcard.getString("assetname");//资产名称 - log.info("同步的实物卡片为" + number + assetname); + log.info("同步的实物卡片为"+number+assetname); String model = realcard.getString("model");//规格型号 Date realaccountdate = realcard.getDate("realaccountdate");//启用日期 DynamicObject assetunit = realcard.getDynamicObject("assetunit");//资产组织 @@ -56,13 +62,14 @@ public class EquipmentCardTaskPlugin extends AbstractTask { String manufacturer = realcard.getString("zcgj_manufacturer");//生产厂家 Date prodate = realcard.getDate("zcgj_prodate");//出场日期 DynamicObject storeplace = realcard.getDynamicObject("storeplace");//存放地点 + DynamicObject headusedept = realcard.getDynamicObject("headusedept");//使用部门 + DynamicObject zcgj_costcenter = realcard.getDynamicObject("zcgj_costcenter");//成本中心 + DynamicObjectCollection finentrys = realcard.getDynamicObjectCollection("finentry");//财务卡片分录 String fulladdress = null; - if (storeplace != null) { + if(storeplace!=null){ DynamicObject storeplaceinfo = BusinessDataServiceHelper.loadSingle("fa_storeplace", new QFilter[]{new QFilter("id", QCP.equals, storeplace.getLong("id"))}); fulladdress = storeplaceinfo.getString("fulladdress"); } -// DynamicObject storeplaceinfo = BusinessDataServiceHelper.loadSingle("fa_storeplace", new QFilter[]{new QFilter("id", QCP.equals, storeplace.getLong("id"))}); -// String fulladdress = storeplaceinfo.getString("fulladdress"); DynamicObject creator = realcard.getDynamicObject("creator");//创建人 Date createtime = realcard.getDate("createtime");//创建时间 DynamicObject modifier = realcard.getDynamicObject("modifier");//修改人 @@ -71,42 +78,62 @@ public class EquipmentCardTaskPlugin extends AbstractTask { Date auditdate = realcard.getDate("auditdate");//审核时间 DynamicObject equipmentcard = ORM.create().newDynamicObject("eceq_equipment_card"); - Date date = new Date(); - long timestamp = date.getTime(); //时间戳 - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //设置格式 - String timeText = format.format(timestamp); + Date date=new Date(); + long timestamp=date.getTime(); //时间戳 + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //设置格式 + String timeText=format.format(timestamp); DynamicObject eceq_equipment_card = BusinessDataServiceHelper.loadSingle("eceq_equipment_card", new QFilter[]{new QFilter("number", QCP.equals, number)}); - if (eceq_equipment_card != null) { - equipmentcard.set("id", eceq_equipment_card.getLong("id")); + if (eceq_equipment_card!=null){ + equipmentcard.set("id",eceq_equipment_card.getLong("id")); + } + + equipmentcard.set("billno",timeText);//单据编号 + equipmentcard.set("status","C");//单据状态 + equipmentcard.set("billstatus","C");// + equipmentcard.set("enable","1");//可用 + equipmentcard.set("property","OWN");//设备性质 + equipmentcard.set("number",getCodeRule(equipmentcard,"53BT+ZJB86=L"));//设备编号 + equipmentcard.set("name",assetname);//设备名称 + equipmentcard.set("modelnum",model);//规格型号 + equipmentcard.set("indate",realaccountdate);//入库日期 + equipmentcard.set("org",assetunit);//管理组织 + equipmentcard.set("equipstatus","FREE");//设备状态 + equipmentcard.set("project",null);//工程项目 + equipmentcard.set("useorg",null);//使用组织 + equipmentcard.set("supplier",supplier);//供应商 + equipmentcard.set("carnumber",platenumber);//车牌号 + equipmentcard.set("enginenumber",null);//发动机编号 + equipmentcard.set("framenumber",null);//车架号码 + equipmentcard.set("unit",unit);//设备单位 + equipmentcard.set("power",null);//功率 + equipmentcard.set("manufacturer",manufacturer);//生产厂家 + equipmentcard.set("proddate",prodate);//出场日期 + equipmentcard.set("storageplace",fulladdress);//存放地点 + equipmentcard.set("creator",creator);//创建人 + equipmentcard.set("createtime",createtime);//创建日期 + equipmentcard.set("modifier",modifier);//修改人 + equipmentcard.set("modifytime",modifytime);//修改日期 + equipmentcard.set("auditor",auditor);//审核人 + equipmentcard.set("auditdate",auditdate);//审核日期 + equipmentcard.set("zcgj_assetnumber",number);//资产编码 + equipmentcard.set("zcgj_headusedepts",headusedept);//使用部门 + equipmentcard.set("zcgj_costcenters",zcgj_costcenter);//审核日期 + + if(finentrys.size()>0){ + DynamicObject finentry = finentrys.get(0); + BigDecimal finOriginalval = finentry.getBigDecimal("fin_originalval");//资产原值 + BigDecimal fin_preusingamount = finentry.getBigDecimal("fin_preusingamount");//预计使用月 + BigDecimal fin_depredamount = finentry.getBigDecimal("fin_depredamount");//已折旧月 + BigDecimal fin_preresidualval = finentry.getBigDecimal("fin_preresidualval");//预计净残值 + BigDecimal fin_accumdepre = finentry.getBigDecimal("fin_accumdepre");//累计折旧 + BigDecimal fin_networth = finentry.getBigDecimal("fin_networth");//净值 + equipmentcard.set("zcgj_networth",fin_networth); + equipmentcard.set("zcgj_accumdepre",fin_accumdepre); + equipmentcard.set("zcgj_depredamount",fin_depredamount); + equipmentcard.set("zcgj_preresidualval",fin_preresidualval); + equipmentcard.set("zcgj_preusingamount",fin_preusingamount); + equipmentcard.set("zcgj_unitprice",finOriginalval); } - equipmentcard.set("billno", timeText);//单据编号 - equipmentcard.set("status", "C");//单据状态 - equipmentcard.set("billstatus", "C");// - equipmentcard.set("enable", "1");//可用 - equipmentcard.set("property", "OWN");//设备性质 - equipmentcard.set("number", number);//设备编号 - equipmentcard.set("name", assetname);//设备名称 - equipmentcard.set("modelnum", model);//规格型号 - equipmentcard.set("indate", realaccountdate);//入库日期 - equipmentcard.set("org", assetunit);//管理组织 - equipmentcard.set("equipstatus", "FREE");//设备状态 - equipmentcard.set("project", null);//工程项目 - equipmentcard.set("useorg", null);//使用组织 - equipmentcard.set("supplier", supplier);//供应商 - equipmentcard.set("carnumber", platenumber);//车牌号 - equipmentcard.set("enginenumber", null);//发动机编号 - equipmentcard.set("framenumber", null);//车架号码 - equipmentcard.set("unit", unit);//设备单位 - equipmentcard.set("power", null);//功率 - equipmentcard.set("manufacturer", manufacturer);//生产厂家 - equipmentcard.set("proddate", prodate);//出场日期 - equipmentcard.set("storageplace", fulladdress);//存放地点 - equipmentcard.set("creator", creator);//创建人 - equipmentcard.set("createtime", createtime);//创建日期 - equipmentcard.set("modifier", modifier);//修改人 - equipmentcard.set("modifytime", modifytime);//修改日期 - equipmentcard.set("auditor", auditor);//审核人 - equipmentcard.set("auditdate", auditdate);//审核日期 if (eceq_equipment_card != null) { SaveServiceHelper.update(equipmentcard); System.out.println(); @@ -134,7 +161,7 @@ public class EquipmentCardTaskPlugin extends AbstractTask { // 增强版比较器(自动适配多种日期格式) for (int i = 0; i < depresplitdetails.size(); i++) { DynamicObject item = depresplitdetails.get(i); - log.info("排序前 " + i + ": " + item.getDynamicObject("period").getString("number")); +// log.info("排序前 " + i + ": " + item.getDynamicObject("period").getString("number")); } Comparator smartComparator = (o1, o2) -> { DynamicObject p1 = o1.getDynamicObject("period"); @@ -254,4 +281,23 @@ public class EquipmentCardTaskPlugin extends AbstractTask { // 默认返回标准格式 return DateTimeFormatter.ofPattern("yyyyMM"); } + + /** + * 获取编码规则生成编码 + * @param data 实体 + * @param number 编码规则编码 + * @return + */ + public static String getCodeRule(DynamicObject data,String number) { + //查找编码规则 + DynamicObject coderule = BusinessDataServiceHelper.loadSingle("bos_coderule", "id", new QFilter[]{new QFilter("number", QCP.equals, number)}); + //编码对象 + if (coderule != null) { + CodeRuleInfo codeRule = CodeRuleCache.reloadCodeRuleById(coderule.getString("id")); + //生成箱号编码 + String archivebillno = CodeRuleServiceHelper.getNumber(codeRule, data); + } + return null; + } + }