This commit is contained in:
xiaoshi 2025-07-29 11:29:37 +08:00
parent a5b859ebee
commit 400242cc2f
1 changed files with 91 additions and 45 deletions

View File

@ -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<String, Object> map) throws KDException {//同步资产卡片
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);
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<DynamicObject> 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;
}
}