123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- package fi.fa.opplugin;
- import com.alibaba.druid.util.StringUtils;
- import fi.fa.opplugin.utils.ChangeDataUtils;
- import kd.bos.bill.BillShowParameter;
- import kd.bos.dataentity.OperateOption;
- import kd.bos.dataentity.entity.DynamicObject;
- import kd.bos.dataentity.entity.DynamicObjectCollection;
- import kd.bos.entity.datamodel.ListSelectedRowCollection;
- import kd.bos.entity.operate.result.OperationResult;
- import kd.bos.form.FormShowParameter;
- import kd.bos.form.ShowType;
- import kd.bos.form.control.events.ItemClickEvent;
- import kd.bos.list.BillList;
- import kd.bos.list.plugin.AbstractListPlugin;
- 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.math.BigDecimal;
- import java.util.EventObject;
- import java.util.List;
- public class AssetMidBillOpPlugin extends AbstractListPlugin {
- public void registerListener(EventObject e) {
- super.registerListener(e);
- this.addItemClickListeners(new String[]{"toolbarap"});
- }
- @Override
- public void itemClick(ItemClickEvent evt) {
- String itemKey = evt.getItemKey();
- if ("nckd_push".equals(itemKey)) {
- StringBuilder errMsg = new StringBuilder();
- BillList billList = (BillList) this.getControl("billlistap");
- ListSelectedRowCollection list = billList.getSelectedRows();
- Object[] primaryKeyValues = list.getPrimaryKeyValues();
- if (primaryKeyValues.length > 0) {
- for (Object pk : primaryKeyValues) {
- DynamicObject info = BusinessDataServiceHelper.loadSingle(pk, "nckd_e_dispatch_mid");
- String nckd_flag = info.getString("nckd_flag");
- String direction = info.getString("nckd_direction");
- if ("1".equals(nckd_flag)) {
- errMsg.append("单据号: ").append(info.getString("number")).append("已经下推生成了业务处理单,不允许重复下推!");
- errMsg.append("\r\n");
- continue;
- }
- String error = ChangeDataUtils.check(info);
- if (!StringUtils.isEmpty(error)) {
- errMsg.append(error);
- errMsg.append("\r\n");
- continue;
- }
- DynamicObject busProcess = BusinessDataServiceHelper.newDynamicObject("nckd_ywcld");
- busProcess.set("nckd_bizdate", info.getDate("nckd_date_out"));
- busProcess.set("nckd_costcompany", ChangeDataUtils.getOrg(info.getString("nckd_org_in")));
- busProcess.set("nckd_orgfield1", ChangeDataUtils.getOrg(info.getString("nckd_org_out")));
- busProcess.set("nckd_orgfield2", ChangeDataUtils.getOrg(info.getString("nckd_org_in")));
- busProcess.set("nckd_orgfield3", ChangeDataUtils.getOrg(info.getString("nckd_dept_in")));
- busProcess.set("nckd_textfield1", info.getString("nckd_reason"));
- busProcess.set("nckd_userfield", ChangeDataUtils.getUser(info.getString("nckd_used_user")));
- busProcess.set("nckd_textfield7", info.getString("nckd_storeplace"));
- busProcess.set("billstatus", "A");
- busProcess.set("nckd_detailtype", "E");
- busProcess.set("nckd_combofield2", "1");
- busProcess.set("nckd_mid_assert", pk);
- busProcess.set("nckd_source_type", "nckd_e_dispatch_mid");
-
- if ("0".equals(direction)) {
- busProcess.set("nckd_applierv", ChangeDataUtils.getUser(info.getString("nckd_user_out")));
- busProcess.set("nckd_basedatafield4", ChangeDataUtils.getUser(info.getString("nckd_user_in")));
- busProcess.set("creator", ChangeDataUtils.getUser(info.getString("nckd_user_out")));
- }
- else if ("1".equals(direction)) {
- busProcess.set("nckd_applierv", ChangeDataUtils.getUser(info.getString("nckd_user_in")));
- busProcess.set("nckd_basedatafield4", ChangeDataUtils.getUser(info.getString("nckd_user_out")));
- busProcess.set("creator", 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"));
- BigDecimal originalval = BigDecimal.ZERO;
- BigDecimal accumdepre = BigDecimal.ZERO;
- BigDecimal decval = BigDecimal.ZERO;
- BigDecimal preresidualval = BigDecimal.ZERO;
- BigDecimal nckd_amountfield23 = BigDecimal.ZERO;
- BigDecimal nckd_amountfield24 = BigDecimal.ZERO;
- if (fin != null) {
- originalval = fin.getBigDecimal("originalval");
- accumdepre = fin.getBigDecimal("accumdepre");
- decval = fin.getBigDecimal("decval");
- preresidualval = fin.getBigDecimal("preresidualval");
- nckd_amountfield23 = originalval.subtract(accumdepre);
- nckd_amountfield24 = nckd_amountfield23.subtract(decval);
- }
-
- DynamicObjectCollection entryEntity = busProcess.getDynamicObjectCollection("nckd_entryentity216");
- DynamicObject entry1 = entryEntity.addNew();
- entry1.set("nckd_basedatafield5", cardInfo);
- entry1.set("nckd_amountfield19", originalval);
- entry1.set("nckd_amountfield20", accumdepre);
- entry1.set("nckd_amountfield21", decval);
- entry1.set("nckd_amountfield22", preresidualval);
- entry1.set("nckd_amountfield23", nckd_amountfield23);
- entry1.set("nckd_amountfield24", nckd_amountfield24);
- }
-
- OperationResult saveResult = SaveServiceHelper.saveOperate("nckd_ywcld", new DynamicObject[]{busProcess}, OperateOption.create());
- if (saveResult.isSuccess()){
- info.set("nckd_flag", "1");
- info.set("nckd_ywcl", saveResult.getSuccessPkIds().get(0));
- SaveServiceHelper.save(new DynamicObject[]{info});
- errMsg.append("单据号: ").append(info.getString("number")).append("下推生成业务处理单成功!");
- errMsg.append("\r\n");
- OperationResult submitResult = OperationServiceHelper.executeOperate("submit", "nckd_ywcld",saveResult.getSuccessPkIds().toArray(),OperateOption.create());
- OperationResult auditResult = OperationServiceHelper.executeOperate("audit", "nckd_ywcld",submitResult.getSuccessPkIds().toArray(),OperateOption.create());
- }else {
- errMsg.append(saveResult.getMessage());
- errMsg.append("\r\n");
- }
- }
- } else {
- this.getView().showMessage("请至少选择一条数据");
- }
- this.getView().showMessage(errMsg.toString());
- } else if ("nckd_trackdown".equals(itemKey)) {
- BillList billList = (BillList) this.getControl("billlistap");
- ListSelectedRowCollection list = billList.getSelectedRows();
- if (list.size() == 0) {
- this.getView().showMessage("请选择一条数据");
- return;
- } else if (list.size() > 1) {
- this.getView().showMessage("只能选择一条数据");
- return;
- }
- Object[] primaryKeyValues = list.getPrimaryKeyValues();
- long id = 0;
- for (Object pk : primaryKeyValues) {
- DynamicObject info = BusinessDataServiceHelper.loadSingle(pk, "nckd_e_dispatch_mid");
- id = info.getLong("nckd_ywcl");
- if (id == 0) {
- this.getView().showMessage("该单据还未下推生成业务处理单");
- return;
- }
- }
- BillShowParameter showParameter = new BillShowParameter();
- showParameter.setFormId("nckd_ywcld");
- showParameter.getOpenStyle().setShowType(ShowType.Modal);
- showParameter.setPkId(id);
- this.getView().showForm(showParameter);
- }
- }
- }
|