This commit is contained in:
xiaoshi 2025-07-31 12:42:26 +08:00
parent 963e5f0864
commit 1897d56193
1 changed files with 25 additions and 19 deletions

View File

@ -28,6 +28,8 @@ import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.*;
import static com.icbc.api.internal.apache.http.h.d.ym;
/**
* 实物卡片同步设备定时任务
*/
@ -84,6 +86,9 @@ public class EquipmentCardTaskPlugin extends AbstractTask {
DynamicObject eceq_equipment_card = BusinessDataServiceHelper.loadSingle("eceq_equipment_card", new QFilter[]{new QFilter("zcgj_assetnumber", QCP.equals, number)});
if (eceq_equipment_card!=null){
equipmentcard.set("id",eceq_equipment_card.getLong("id"));
equipmentcard.set("number",eceq_equipment_card.getString("number"));//设备编号
}else{
equipmentcard.set("number",getCodeRule(equipmentcard,"53BT+ZJB86=L"));//设备编号
}
equipmentcard.set("billno",timeText);//单据编号
@ -91,7 +96,6 @@ public class EquipmentCardTaskPlugin extends AbstractTask {
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);//入库日期
@ -142,24 +146,22 @@ public class EquipmentCardTaskPlugin extends AbstractTask {
}
DynamicObject eceq_equipment = BusinessDataServiceHelper.loadSingle("eceq_equipinfo", new QFilter[]{new QFilter("number", QCP.equals, number)});
if (eceq_equipment != null) {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM"); //设置格式
String ym = sd.format(date);
DynamicObjectCollection entrys = eceq_equipment.getDynamicObjectCollection("zcgj_entryentity");
QFilter qf = new QFilter("realcard.number", QCP.equals, number);
if (entrys.size() > 0) {//若分录行数大于0 则取上月的
qf.and(new QFilter("billno", QCP.in, ym));
for (int i = 0; i < entrys.size(); i++) {
DynamicObject entry = entrys.get(i);
String zcgjDebillno = entry.getString("zcgj_debillno");
entrys.removeIf(record -> isLastMonth(zcgjDebillno));//若属于上个月那就删除重新塞入
long billnoid = entry.getLong("zcgj_debillno");
qf.and(new QFilter("id", QCP.not_equals, billnoid));
// entrys.removeIf(record -> isLastMonth(zcgjDebillno));//若属于上个月那就删除重新塞入
}
}
// DynamicObjectCollection depresplitdetails = QueryServiceHelper.query("fa_depresplitdetail", "billno,period,splitdept,assentry.costcentrer,assentry.splitamount", new QFilter[]{qf});
DynamicObjectCollection depresplitdetails = QueryServiceHelper.query("fa_depresplitdetail", "id,billno,period,splitdept,assentry.costcentrer,assentry.splitamount", new QFilter[]{qf});
// DynamicObject[] depresplitdetails = BusinessDataServiceHelper.load("fa_depresplitdetail", "billno,period,splitdept,assentry.costcentrer,assentry.splitamount", new QFilter[]{qf});
DataSet rows = QueryServiceHelper.queryDataSet(this.getClass().getName(), "fa_depresplitdetail", "id,billno,period,splitdept,assentry,assentry.costcentrer,assentry.splitamount",
new QFilter[]{new QFilter("realcard.number", QCP.equals, number)}, "period.number DESC");
DynamicObjectCollection depresplitdetails = ORM.create().toPlainDynamicObjectCollection(rows.copy());
// DataSet rows = QueryServiceHelper.queryDataSet(this.getClass().getName(), "fa_depresplitdetail", "id,billno,period,splitdept,assentry,assentry.costcentrer,assentry.splitamount",
// new QFilter[]{new QFilter("realcard.number", QCP.equals, number)}, "period.number DESC");
// DynamicObjectCollection depresplitdetails = ORM.create().toPlainDynamicObjectCollection(rows.copy());
// // 增强版比较器自动适配多种日期格式
// for (int i = 0; i < depresplitdetails.size(); i++) {
// DynamicObject item = depresplitdetails.get(i);
@ -199,24 +201,28 @@ public class EquipmentCardTaskPlugin extends AbstractTask {
// DynamicObject item = depresplitdetails.get(i);
// log.info("排序前 " + i + ": " + item.getDynamicObject("period").getString("number"));
// }
// //按字段 menuindex 排序
// Collections.sort(depresplitdetails , new Comparator<DynamicObject>(){
// @Override
// public int compare(DynamicObject stu1, DynamicObject stu2) {
// return stu1.getInt("menuindex")-stu2.getInt("menuindex");
// }
// });
//按字段 menuindex 排序
Collections.sort(depresplitdetails , new Comparator<DynamicObject>(){
@Override
public int compare(DynamicObject o1, DynamicObject o2) {
long id1 = o1.getLong("id");
DynamicObject oo1 = BusinessDataServiceHelper.loadSingle("fa_depresplitdetail", new QFilter[]{new QFilter("id", QCP.equals, id1)});
long id2 = o2.getLong("id");
DynamicObject oo2 = BusinessDataServiceHelper.loadSingle("fa_depresplitdetail", new QFilter[]{new QFilter("id", QCP.equals, id2)});
return oo2.getDynamicObject("period").getString("number").compareTo(oo1.getDynamicObject("period").getString("number"));
}
});
for (DynamicObject depresplitdetail : depresplitdetails) {
long id = depresplitdetail.getLong("id");
DynamicObject loadSingle = BusinessDataServiceHelper.loadSingle("fa_depresplitdetail", new QFilter[]{new QFilter("id", QCP.equals, id)});
String billno = loadSingle.getString("billno");
// String billnoid = loadSingle.getString("billno");
DynamicObject period = loadSingle.getDynamicObject("period");//折旧区间
DynamicObject splitdept = loadSingle.getDynamicObject("splitdept");//使用部门
DynamicObjectCollection assentry = loadSingle.getDynamicObjectCollection("assentry");
DynamicObject costcentrer = assentry.get(0).getDynamicObject("costcentrer");//成本中心
BigDecimal splitamount = assentry.get(0).getBigDecimal("splitamount");//分摊金额
DynamicObject addNew = entrys.addNew();
addNew.set("zcgj_debillno", billno);
addNew.set("zcgj_debillno", id);
addNew.set("zcgj_assperiod", period);
addNew.set("zcgj_headusedept", splitdept);
addNew.set("zcgj_entrybillno", number);