|
@@ -11,6 +11,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
|
import nckd.jimin.jyyy.fi.common.constant.travelcheck.BusTravelCheckBillConstant;
|
|
|
import nckd.jimin.jyyy.fi.common.constant.travelcheck.FinanceBillConfirmConstant;
|
|
|
+import nckd.jimin.jyyy.fi.common.constant.travelcheck.TripReqBillConstant;
|
|
|
|
|
|
import java.util.EventObject;
|
|
|
import java.util.List;
|
|
@@ -35,6 +36,11 @@ public class BusTravelCheckApproveEdit extends AbstractBillPlugIn implements Fin
|
|
|
DynamicObjectCollection bzEntryCol = dataEntity.getDynamicObjectCollection(NCKD_BZ_ENTRY.ENTITYID);
|
|
|
bzEntryCol.removeIf(bzEntry -> bzEntry.getDynamicObject(NCKD_BZ_ENTRY.NCKD_BZ_TRAVELER).getLong(ID) != currUserId);
|
|
|
|
|
|
+ DynamicObjectCollection supEntryCol = dataEntity.getDynamicObjectCollection(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.ENTITYID);
|
|
|
+ supEntryCol.removeIf(supEntry -> supEntry.getDynamicObject(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL) != null
|
|
|
+ && supEntry.getDynamicObject(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDynamicObject(TripReqBillConstant.APPLIER) != null
|
|
|
+ && supEntry.getDynamicObject(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDynamicObject(TripReqBillConstant.APPLIER).getLong( ID) != currUserId);
|
|
|
+
|
|
|
DynamicObjectCollection slEntryCol = dataEntity.getDynamicObjectCollection(NCKD_SL_ENTRY.ENTITYID);
|
|
|
slEntryCol.removeIf(slEntry -> slEntry.getDynamicObject(NCKD_SL_ENTRY.NCKD_SL_TRAVELER).getLong( ID) != currUserId);
|
|
|
|
|
@@ -70,7 +76,7 @@ public class BusTravelCheckApproveEdit extends AbstractBillPlugIn implements Fin
|
|
|
Object billId = dataEntity.getPkValue();
|
|
|
DynamicObject checkBillInfo = BusinessDataServiceHelper.loadSingle(billId, BusTravelCheckBillConstant.ENTITYID);
|
|
|
DynamicObjectCollection bzEntryCol = dataEntity.getDynamicObjectCollection(NCKD_BZ_ENTRY.ENTITYID);
|
|
|
-
|
|
|
+ long currUserId = RequestContext.get().getCurrUserId();
|
|
|
Map<Long, DynamicObject> bzSrcEntryMap = bzEntryCol.stream().collect(Collectors.toMap(bzEntry -> bzEntry.getLong(ID), bzEntry -> bzEntry));
|
|
|
DynamicObjectCollection checkBzEntryCol = checkBillInfo.getDynamicObjectCollection(NCKD_BZ_ENTRY.ENTITYID);
|
|
|
for(DynamicObject checkBzEntry : checkBzEntryCol){
|
|
@@ -80,17 +86,16 @@ public class BusTravelCheckApproveEdit extends AbstractBillPlugIn implements Fin
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 通过出差人 来创建
|
|
|
DynamicObjectCollection supEntryCol = dataEntity.getDynamicObjectCollection(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.ENTITYID);
|
|
|
- List<Long> supEntryIdList = supEntryCol.stream().map(confirmSupEntry -> confirmSupEntry.getLong(BusTravelCheckBillConstant.ID)).collect(Collectors.toList());
|
|
|
-
|
|
|
DynamicObjectCollection checkSupEntryCol = checkBillInfo.getDynamicObjectCollection(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.ENTITYID);
|
|
|
- checkSupEntryCol.removeIf(confirmSupEntry -> supEntryIdList.contains(confirmSupEntry.getLong(BusTravelCheckBillConstant.ID)));
|
|
|
- checkSupEntryCol.removeIf(confirmSupEntry -> confirmSupEntry.getDynamicObject(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL) == null);
|
|
|
|
|
|
- Map<Long, DynamicObject> checkSupEntryMap = checkSupEntryCol.stream().collect(Collectors.toMap(supEntry -> supEntry.getLong(ID), supEntry -> supEntry));
|
|
|
+ checkSupEntryCol.removeIf(checkSupEntry -> checkSupEntry.getDynamicObject(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL) != null
|
|
|
+ && checkSupEntry.getDynamicObject(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDynamicObject(TripReqBillConstant.APPLIER) != null
|
|
|
+ && checkSupEntry.getDynamicObject(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDynamicObject(TripReqBillConstant.APPLIER).getLong(ID) == currUserId);
|
|
|
+
|
|
|
for(DynamicObject supEntry : supEntryCol){
|
|
|
- Long supEntryId = supEntry.getLong(BusTravelCheckBillConstant.ID);
|
|
|
- DynamicObject checkSupEntry = checkSupEntryMap.getOrDefault(supEntryId, checkSupEntryCol.addNew());
|
|
|
+ DynamicObject checkSupEntry = checkSupEntryCol.addNew();
|
|
|
DynamicObjectUtils.copy(supEntry, checkSupEntry,BusTravelCheckBillConstant.COPY_IGNOREFILED);
|
|
|
}
|
|
|
|
|
@@ -149,11 +154,11 @@ public class BusTravelCheckApproveEdit extends AbstractBillPlugIn implements Fin
|
|
|
}
|
|
|
protected void writeBackConfirmBill(){
|
|
|
DynamicObject dataEntity = getModel().getDataEntity(true);
|
|
|
-
|
|
|
+ long checkBillId = dataEntity.getLong(BusTravelCheckBillConstant.ID);
|
|
|
long confirmBillId = dataEntity.getLong(BusTravelCheckBillConstant.NCKD_NCKD_SOURCEBILLID);
|
|
|
DynamicObject confirmBillInfo = BusinessDataServiceHelper.loadSingle(confirmBillId, FinanceBillConfirmConstant.ENTITYID);
|
|
|
DynamicObjectCollection bzEntryCol = dataEntity.getDynamicObjectCollection(NCKD_BZ_ENTRY.ENTITYID);
|
|
|
-
|
|
|
+ long currUserId = RequestContext.get().getCurrUserId();
|
|
|
Map<Long, DynamicObject> bzSrcEntryMap = bzEntryCol.stream().collect(Collectors.toMap(bzEntry -> bzEntry.getLong(NCKD_BZ_ENTRY.NCKD_BZ_SRCENTRYID), bzEntry -> bzEntry));
|
|
|
DynamicObjectCollection confirmBzEntryCol = confirmBillInfo.getDynamicObjectCollection(NCKD_BZ_ENTRY.ENTITYID);
|
|
|
for(DynamicObject confirmBzEntry : confirmBzEntryCol){
|
|
@@ -162,20 +167,20 @@ public class BusTravelCheckApproveEdit extends AbstractBillPlugIn implements Fin
|
|
|
DynamicObjectUtils.copy(bzEntryInfo, confirmBzEntry,BusTravelCheckBillConstant.COPY_IGNOREFILED);
|
|
|
}
|
|
|
}
|
|
|
- // 补助未涵盖反写确认单
|
|
|
+ // 通过商旅对账ID反写
|
|
|
DynamicObjectCollection supEntryCol = dataEntity.getDynamicObjectCollection(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.ENTITYID);
|
|
|
|
|
|
DynamicObjectCollection confirmSupEntryCol = confirmBillInfo.getDynamicObjectCollection(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.ENTITYID);
|
|
|
|
|
|
- List<Long> supEntryIdList = supEntryCol.stream().map(confirmSupEntry -> confirmSupEntry.getLong(BusTravelCheckBillConstant.ID)).collect(Collectors.toList());
|
|
|
- confirmSupEntryCol.removeIf(confirmSupEntry -> supEntryIdList.contains(confirmSupEntry.getLong(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_SRCCHECKID)));
|
|
|
- confirmSupEntryCol.removeIf(confirmSupEntry -> confirmSupEntry.getLong(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_SRCCHECKID) == 0L);
|
|
|
+ confirmSupEntryCol.removeIf(confirmSupEntry -> confirmSupEntry.getLong(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_SRCCHECKID) == checkBillId
|
|
|
+ && confirmSupEntry.getDynamicObject(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL) != null
|
|
|
+ && confirmSupEntry.getDynamicObject(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDynamicObject(TripReqBillConstant.APPLIER) != null
|
|
|
+ && confirmSupEntry.getDynamicObject(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_TRIPREQBILL).getDynamicObject(TripReqBillConstant.APPLIER).getLong(ID) == currUserId);
|
|
|
// 删除来源确认单的数据
|
|
|
for(DynamicObject supEntry : supEntryCol){
|
|
|
- Long supEntryId = supEntry.getLong(BusTravelCheckBillConstant.ID);
|
|
|
DynamicObject confirmSupEntry = confirmSupEntryCol.addNew();
|
|
|
DynamicObjectUtils.copy(supEntry, confirmSupEntry,BusTravelCheckBillConstant.COPY_IGNOREFILED);
|
|
|
- confirmSupEntry.set(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_SRCCHECKID, supEntryId);
|
|
|
+ confirmSupEntry.set(BusTravelCheckBillConstant.NCKD_BZ_SUPDATA.NCKD_SRCCHECKID, checkBillId);
|
|
|
}
|
|
|
|
|
|
DynamicObjectCollection slSrcEntryCol = dataEntity.getDynamicObjectCollection(NCKD_SL_ENTRY.ENTITYID);
|