123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- package fi.fa.opplugin;
- import com.alibaba.druid.util.StringUtils;
- import fi.fa.opplugin.utils.ChangeDataUtils;
- import kd.bos.dataentity.OperateOption;
- import kd.bos.dataentity.entity.DynamicObject;
- import kd.bos.dataentity.entity.DynamicObjectCollection;
- import kd.bos.entity.operate.result.OperationResult;
- import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
- import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
- import kd.bos.exception.KDBizException;
- import kd.bos.orm.query.QCP;
- import kd.bos.orm.query.QFilter;
- import kd.bos.servicehelper.BusinessDataServiceHelper;
- import kd.bos.servicehelper.operation.OperationServiceHelper;
- import kd.bos.servicehelper.operation.SaveServiceHelper;
- import java.util.List;
- public class FaChangeMidOpPlugin extends AbstractOperationServicePlugIn {
- @Override
- public void beginOperationTransaction(BeginOperationTransactionArgs e) {
- super.beginOperationTransaction(e);
- DynamicObject[] dynamicObjects = e.getDataEntities();
- for (int i = 0; i < dynamicObjects.length; i++) {
- if (StringUtils.equals(e.getOperationKey(), "push")) {
- DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
- String nckd_flag = info.getString("nckd_flag");
- if ("1".equals(nckd_flag)) {
- throw new KDBizException("单据" + info.getString("number") + "已经下推生成了资产调拨单,不允许重复下推!");
- }else {
- String dispatchType = info.getString("nckd_dispatch_type");
- String direction = info.getString("nckd_direction");
- String error = ChangeDataUtils.check(info);
- if (!StringUtils.isEmpty(error)) {
- this.operationResult.setShowMessage(true);
- this.operationResult.setSuccess(false);
- this.operationResult.setMessage(error);
- }else {
- if ("1".equals(dispatchType)) {
- DynamicObject changeDept = BusinessDataServiceHelper.newDynamicObject("fa_change_dept");
-
- DynamicObject orgInfo = ChangeDataUtils.queryOrg(ChangeDataUtils.getOrg(info.getString("nckd_org_in")));
- changeDept.set("org", orgInfo);
- changeDept.set("changedate", info.getDate("nckd_date_out"));
- changeDept.set("appliantid", ChangeDataUtils.getUser(info.getString("nckd_user_out")));
- changeDept.set("remark", info.getString("nckd_reason"));
- changeDept.set("sourcetype", 2);
- changeDept.set("changetype", ChangeDataUtils.queryChangeType(Long.parseLong("733953285719123968")));
- changeDept.set("chtypedetail", "1");
- changeDept.set("voucherflag", "A");
- changeDept.set("billstatus", "A");
-
- if("0".equals(direction)){
- changeDept.set("creator", ChangeDataUtils.getUser(info.getString("nckd_user_out")));
- changeDept.set("appliantid", ChangeDataUtils.getUser(info.getString("nckd_user_out")));
- }
- else if ("1".equals(direction)) {
- changeDept.set("creator", ChangeDataUtils.getUser(info.getString("nckd_user_in")));
- changeDept.set("appliantid", ChangeDataUtils.getUser(info.getString("nckd_user_in")));
- }
- List<String> codeList =ChangeDataUtils.getCardNumber(info);
- QFilter filter = new QFilter("number", QCP.in,codeList);
- filter.and("isbak", QCP.equals, "0");
- DynamicObject[] card = BusinessDataServiceHelper.load("fa_card_real","id",new QFilter[] {filter});
- for (int c = 0; c < card.length; c++) {
- DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(card[c].getPkValue(), card[c].getDynamicObjectType().getName());
-
- DynamicObject fin = ChangeDataUtils.queryFinCard(cardInfo.getLong("id"));
-
- DynamicObjectCollection fieldentry = changeDept.getDynamicObjectCollection("fieldentry");
- String deptAftervalue = ChangeDataUtils.getOrg(info.getString("nckd_dept_in")) == null ? null : ChangeDataUtils.getOrg(info.getString("nckd_dept_in")).toString();
- String deptBeforevalue = cardInfo.getDynamicObject("headusedept") == null ? null : String.valueOf(cardInfo.getDynamicObject("headusedept").getLong("id"));
- if (!StringUtils.equals(deptBeforevalue, deptAftervalue)) {
- DynamicObject entry1 = fieldentry.addNew();
- entry1.set("realcard1", cardInfo);
- entry1.set("depreuse1", ChangeDataUtils.queryDepreuse(Long.parseLong("418714318096331776")));
- entry1.set("currency1", 1);
- entry1.set("basecurrency1", 1);
- entry1.set("assetnumber",cardInfo.getString("number"));
- entry1.set("bizdate1", info.getDate("nckd_date_out"));
- entry1.set("field", "fa_card_real.headusedept");
- entry1.set("beforevalue", deptBeforevalue);
- entry1.set("aftervalue", deptAftervalue);
- entry1.set("realcardmasterid", cardInfo);
- entry1.set("fincard1", fin);
- }
- String userAftervalue = info.getString("nckd_used_user") == null ? null : String.valueOf(ChangeDataUtils.getUser(info.getString("nckd_used_user")).getLong("id"));
- String userBeforevalue = cardInfo.getDynamicObject("headuseperson") == null ? null : String.valueOf(ChangeDataUtils.getUser(info.getString("nckd_used_user")).getLong("id"));
- if (!StringUtils.equals(userBeforevalue, userAftervalue)) {
- DynamicObject entry2 = fieldentry.addNew();
- entry2.set("realcard1", cardInfo);
- entry2.set("depreuse1", ChangeDataUtils.queryDepreuse(Long.parseLong("418714318096331776")));
- entry2.set("currency1", 1);
- entry2.set("basecurrency1", 1);
- entry2.set("assetnumber",cardInfo.getString("number"));
- entry2.set("bizdate1", info.getDate("nckd_date_out"));
- entry2.set("field", "fa_card_real.headuseperson");
- entry2.set("beforevalue", userBeforevalue);
- entry2.set("aftervalue", userAftervalue);
- entry2.set("realcardmasterid", cardInfo);
- entry2.set("fincard1", fin);
- }
-
- DynamicObjectCollection realentry = changeDept.getDynamicObjectCollection("realentry");
- DynamicObject realentry1 = realentry.addNew();
- realentry1.set("realcard", cardInfo.getLong("id"));
-
- DynamicObjectCollection finentry = realentry1.getDynamicObjectCollection("finentry");
- DynamicObject finentry1 = finentry.addNew();
- finentry1.set("depreuse", ChangeDataUtils.queryDepreuse(Long.parseLong("418714318096331776")));
- finentry1.set("fincard", fin);
- finentry1.set("bizdate", info.getDate("nckd_date_out"));
- }
-
- OperationResult saveResult = SaveServiceHelper.saveOperate("fa_change_dept", new DynamicObject[]{changeDept}, OperateOption.create());
- if (saveResult.isSuccess()) {
- info.set("nckd_flag", "1");
- SaveServiceHelper.save(new DynamicObject[]{info});
- this.operationResult.setShowMessage(true);
- this.operationResult.setSuccess(true);
- this.operationResult.setMessage("下推资产变更单成功");
- OperationResult submitResult = OperationServiceHelper.executeOperate("submit", "fa_change_dept",saveResult.getSuccessPkIds().toArray(),OperateOption.create());
- OperationResult auditResult = OperationServiceHelper.executeOperate("audit", "fa_change_dept",submitResult.getSuccessPkIds().toArray(),OperateOption.create());
- }else {
- this.operationResult.setShowMessage(true);
- this.operationResult.setSuccess(false);
- this.operationResult.setMessage("下推资产变更单失败");
- }
- }
- }
- }
- }
- }
- }
- }
|