|
@@ -0,0 +1,103 @@
|
|
|
+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;
|
|
|
+//资产变更单
|
|
|
+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;
|
|
|
+ }
|
|
|
+}
|