This commit is contained in:
xiaoshi 2025-07-24 17:18:30 +08:00
parent 95dce05fef
commit f363823274
1 changed files with 55 additions and 7 deletions

View File

@ -1,6 +1,8 @@
package zcgj.zcdev.zcdev.pr.plugin.form;
import com.greenpineyu.fel.common.NumberUtil;
import kd.bos.coderule.api.CodeRuleInfo;
import kd.bos.coderule.service.cache.CodeRuleCache;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.ListSelectedRow;
@ -18,6 +20,7 @@ import kd.bos.orm.ORM;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.coderule.CodeRuleServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.fi.gl.util.DateUtil;
@ -60,15 +63,18 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
view.invokeOperation("refresh");
} else if (itemKey.equals("zcgj_asset")) {//同步资产卡片
List<String> 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);
String model = realcard.getString("model");//规格型号
@ -80,6 +86,9 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
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){
DynamicObject storeplaceinfo = BusinessDataServiceHelper.loadSingle("fa_storeplace", new QFilter[]{new QFilter("id", QCP.equals, storeplace.getLong("id"))});
@ -101,12 +110,13 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
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",number);//设备编号
equipmentcard.set("number",getCodeRule(equipmentcard,"53BT+ZJB86=L"));//设备编号
equipmentcard.set("name",assetname);//设备名称
equipmentcard.set("modelnum",model);//规格型号
equipmentcard.set("indate",realaccountdate);//入库日期
@ -129,6 +139,25 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
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);
}
if (eceq_equipment_card!=null){
SaveServiceHelper.update(equipmentcard);
System.out.println();
@ -217,4 +246,23 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
return false;
}
}
/**
* 获取编码规则生成编码
* @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;
}
}