|
@@ -0,0 +1,74 @@
|
|
|
+package fi.fa.opplugin;
|
|
|
+
|
|
|
+import com.alibaba.druid.util.StringUtils;
|
|
|
+import kd.bos.dataentity.entity.DynamicObject;
|
|
|
+import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
+import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
|
|
+import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
|
|
|
+import kd.bos.orm.query.QCP;
|
|
|
+import kd.bos.orm.query.QFilter;
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
+import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+public class RealCardBillOpPlugin extends AbstractOperationServicePlugIn {
|
|
|
+ @Override
|
|
|
+ public void beginOperationTransaction(BeginOperationTransactionArgs e) {
|
|
|
+ DynamicObject[] dynamicObjects = e.getDataEntities();
|
|
|
+ for (int i = 0; i < dynamicObjects.length; i++) {
|
|
|
+ if (StringUtils.equals(e.getOperationKey(),"audit")) {
|
|
|
+ List<Long> ids = new ArrayList<>();
|
|
|
+ //审批通过后,如果是报销单下推的单据,则回写e卡片清单
|
|
|
+ DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
|
|
|
+ Long bxId = info.getLong("nckd_bz_id");
|
|
|
+ String number = info.getString("number");//资产编码
|
|
|
+ String name = info.getString("assetname");//资产名称
|
|
|
+ DynamicObject org = info.getDynamicObject("assetunit");//资产组织
|
|
|
+ String orgName = org.getString("name");
|
|
|
+ //查询报销单
|
|
|
+ QFilter bxFilter = new QFilter("id", QCP.equals,bxId);
|
|
|
+ DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load("er_publicreimbursebill","id",new QFilter[] {bxFilter});
|
|
|
+ for (int c=0;c<bxDynamicObjects.length;c++) {
|
|
|
+ //报销单头数据包
|
|
|
+ DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[c].getPkValue(), bxDynamicObjects[c].getDynamicObjectType().getName());
|
|
|
+ //循环资产信息分录
|
|
|
+ for(DynamicObject object : bxInfo.getDynamicObjectCollection("assetentry")){
|
|
|
+ //获取e管家实物卡片清单基础资料
|
|
|
+ DynamicObjectCollection cardList = object.getDynamicObjectCollection("nckd_real_card");
|
|
|
+ for (DynamicObject card : cardList) {
|
|
|
+ Long id = (Long) card.get(2);
|
|
|
+ //查询e卡片实物清单
|
|
|
+ QFilter filter = new QFilter("id", QCP.equals,id);
|
|
|
+ DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
|
|
|
+ for (int j = 0; j < cardObjects.length; j++) {
|
|
|
+ DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
|
|
|
+ //回写e卡片实物清单字段
|
|
|
+ cardInfo.set("nckd_card_real_org", orgName);
|
|
|
+ cardInfo.set("nckd_card_real_code", number);
|
|
|
+ cardInfo.set("nckd_card_real_name", name);
|
|
|
+ SaveServiceHelper.save(new DynamicObject[]{cardInfo});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(StringUtils.equals(e.getOperationKey(),"unaudit")) {
|
|
|
+ //反审核,e管家实物卡片清单三个字段置为空
|
|
|
+ DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
|
|
|
+ String number = info.getString("number");//资产编码
|
|
|
+ //查询e管家实物清单
|
|
|
+ QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
|
|
|
+ DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
|
|
|
+ for (int j = 0; j < cardObjects.length; j++) {
|
|
|
+ DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
|
|
|
+ //回写e卡片实物清单字段
|
|
|
+ cardInfo.set("nckd_card_real_org", null);
|
|
|
+ cardInfo.set("nckd_card_real_code", null);
|
|
|
+ cardInfo.set("nckd_card_real_name", null);
|
|
|
+ SaveServiceHelper.save(new DynamicObject[]{cardInfo});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|