123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- 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());
- String srcbillentityname = info.getString("srcbillentityname");
- 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");
- if (!"fa_assetsplitbill".equals(srcbillentityname)) {
- DynamicObjectCollection nckd_real_card = info.getDynamicObjectCollection("nckd_real_card");
- if( nckd_real_card != null) {
- for (DynamicObject object : nckd_real_card) {
- DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(object.get(2), "nckd_fa_card_real_list");
- //回写e卡片实物清单字段
- cardInfo.set("nckd_flag", "1");
- 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});
- }
- }
- //反写合同台账单
- if (bxId != 0) {
- //查询报销单
- QFilter bxFilter = new QFilter("id", QCP.equals,bxId);
- DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load("er_publicreimbursebill","id",new QFilter[] {bxFilter});
- for (int j = 0; j < bxDynamicObjects.length; j++) {
- DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[i].getPkValue(), bxDynamicObjects[i].getDynamicObjectType().getName());
- String nckd_sourcebillid = bxInfo.getString("nckd_sourcebillid");
- if (!StringUtils.isEmpty(nckd_sourcebillid)) {
- Long contractbillId = Long.parseLong(nckd_sourcebillid);
- //查询合同台账单
- QFilter htFilter = new QFilter("id", QCP.equals,contractbillId);
- DynamicObject[] htDynamicObjects = BusinessDataServiceHelper.load("er_contractbill","id",new QFilter[] {htFilter});
- for (int k = 0; k < htDynamicObjects.length; k++) {
- DynamicObject htInfo = BusinessDataServiceHelper.loadSingle(htDynamicObjects[i].getPkValue(), htDynamicObjects[i].getDynamicObjectType().getName());
- htInfo.set("nckd_real_card", info.getString("billno"));
- SaveServiceHelper.save(new DynamicObject[]{htInfo});
- }
- }
- }
- }
- }
- }else if(StringUtils.equals(e.getOperationKey(),"unaudit")) {
- DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
- long bxId = info.getLong("nckd_bz_id");
- String srcbillentityname = info.getString("srcbillentityname");
- if (!"fa_assetsplitbill".equals(srcbillentityname)) {
- //反审核,e管家实物卡片清单三个字段置为空
- 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_flag", "0");
- 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});
- }
- //反写合同台账
- if (bxId != 0) {
- //查询报销单
- QFilter bxFilter = new QFilter("id", QCP.equals,bxId);
- DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load("er_publicreimbursebill","id",new QFilter[] {bxFilter});
- for (int j = 0; j < bxDynamicObjects.length; j++) {
- DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[i].getPkValue(), bxDynamicObjects[i].getDynamicObjectType().getName());
- String nckd_sourcebillid = bxInfo.getString("nckd_sourcebillid");
- if (!StringUtils.isEmpty(nckd_sourcebillid)) {
- Long contractbillId = Long.parseLong(nckd_sourcebillid);
- //查询合同台账单
- QFilter htFilter = new QFilter("id", QCP.equals,contractbillId);
- DynamicObject[] htDynamicObjects = BusinessDataServiceHelper.load("er_contractbill","id",new QFilter[] {htFilter});
- for (int k = 0; k < htDynamicObjects.length; k++) {
- DynamicObject htInfo = BusinessDataServiceHelper.loadSingle(htDynamicObjects[i].getPkValue(), htDynamicObjects[i].getDynamicObjectType().getName());
- htInfo.set("nckd_real_card", null);
- SaveServiceHelper.save(new DynamicObject[]{htInfo});
- }
- }
- }
- }
- }
- }
- }
- }
- }
|