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 aad0bf9..4f06695 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 @@ -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(){ -// @Override -// public int compare(DynamicObject stu1, DynamicObject stu2) { -// return stu1.getInt("menuindex")-stu2.getInt("menuindex"); -// } -// }); + //按字段 menuindex 排序 + Collections.sort(depresplitdetails , new Comparator(){ + @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);