package fi.fa.opplugin; import com.alibaba.druid.util.StringUtils; import kd.bos.dataentity.entity.DynamicObject; 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; //资产变更单 public class FaChangeDeptBillOpPlugin 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")) { DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName()); Long queryChangeType = Long.parseLong("733953285719123968"); Long changetype = info.getDynamicObject("changetype").getLong("id"); if (queryChangeType.equals(changetype)) { Long deptId = null; Long user = null; String number = null; DynamicObject userInfo = null; for (DynamicObject fieldentry : info.getDynamicObjectCollection("fieldentry")) { if ("fa_card_real.headusedept".equals(fieldentry.getString("field")) && !StringUtils.isEmpty(fieldentry.getString("aftervalue"))) { deptId = Long.parseLong(fieldentry.getString("aftervalue")); } if ("fa_card_real.headuseperson".equals(fieldentry.getString("field")) && !StringUtils.isEmpty(fieldentry.getString("aftervalue"))) { user = Long.parseLong(fieldentry.getString("aftervalue")); userInfo = getUser(user); } number = fieldentry.getString("assetnumber"); } if (!StringUtils.isEmpty(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_dept", deptId);//归属部门 if (userInfo != null) { cardInfo.set("nckd_use_name", userInfo.getString("number"));//使用人 } SaveServiceHelper.save(new DynamicObject[]{cardInfo}); } } } } else if (StringUtils.equals(e.getOperationKey(),"unaudit")) { DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName()); Long queryChangeType = Long.parseLong("733953285719123968"); Long changetype = info.getDynamicObject("changetype").getLong("id"); if (queryChangeType.equals(changetype)) { Long deptId = null; Long user = null; String number = null; DynamicObject userInfo = null; for (DynamicObject fieldentry : info.getDynamicObjectCollection("fieldentry")) { if ("fa_card_real.headusedept".equals(fieldentry.getString("field")) && !StringUtils.isEmpty(fieldentry.getString("aftervalue"))) { deptId = Long.parseLong(fieldentry.getString("beforevalue")); } if ("fa_card_real.headuseperson".equals(fieldentry.getString("field")) && !StringUtils.isEmpty(fieldentry.getString("aftervalue"))) { user = Long.parseLong(fieldentry.getString("beforevalue")); userInfo = getUser(user); } number = fieldentry.getString("assetnumber"); } if (!StringUtils.isEmpty(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_dept", deptId);//归属部门 if (userInfo != null) { cardInfo.set("nckd_use_name", userInfo.getString("number"));//使用人 } SaveServiceHelper.save(new DynamicObject[]{cardInfo}); } } } } } } /** * @description 查询用户表获取用户 * @param id * @return Long */ private DynamicObject getUser(Long id) { QFilter filter = new QFilter("id", QCP.in, id); DynamicObject[] user = BusinessDataServiceHelper.load("bos_user","id",new QFilter[] {filter}); if (user.length > 0) { DynamicObject userInfo = BusinessDataServiceHelper.loadSingle(user[0].getPkValue(), user[0].getDynamicObjectType().getName()); return userInfo; } return null; } }