parent
fd3b56c285
commit
c7e3186fdb
|
@ -0,0 +1,198 @@
|
|||
package zcgj.zcdev.zcdev.fs.plugin.form;
|
||||
|
||||
import kd.bos.bill.AbstractBillPlugIn;
|
||||
import kd.bos.dataentity.entity.CloneUtils;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.datamodel.ListSelectedRow;
|
||||
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
||||
import kd.bos.form.CloseCallBack;
|
||||
import kd.bos.form.ShowFormHelper;
|
||||
import kd.bos.form.events.ClosedCallBackEvent;
|
||||
import kd.bos.form.field.BasedataEdit;
|
||||
import kd.bos.form.field.events.AfterF7SelectEvent;
|
||||
import kd.bos.form.field.events.AfterF7SelectListener;
|
||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||
import kd.bos.list.ListShowParameter;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
||||
import java.util.EventObject;
|
||||
|
||||
/**
|
||||
* 借款单会计科目与费用项目关联插件
|
||||
*/
|
||||
public class DailyloanbillExpAccPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener, AfterF7SelectListener {
|
||||
|
||||
private static final Log log = LogFactory.getLog(DailyloanbillExpAccPlugin.class);
|
||||
//开发商标识
|
||||
private static final String prefix ="zcgj";
|
||||
|
||||
//界面回调标识(自定义)
|
||||
private final static String ACTION_ID="accountview_form";
|
||||
private final static String ACTION_ID_EXPENSE="expenseitem_form";
|
||||
|
||||
//借款单的预付信息标识
|
||||
private final static String EXPENSE_ENTRY_ENTITY = "expenseentryentity";
|
||||
|
||||
//会计科目与费用项目映射表分录
|
||||
private final static String MAP_TABLE = "zcgj_accountsitemsmap";
|
||||
//会计科目与费用项目映射表分录标识
|
||||
private final static String MAP_ENTRY_ENTITY = "zcgj_entryentity";
|
||||
|
||||
//借款单中的费用项目标识
|
||||
private final static String EXPENSE_ITEM ="expenseitem";
|
||||
//借款单中的会计科目标识
|
||||
private final static String ACCOUNT_ITEM ="zcgj_account_item";
|
||||
|
||||
//分录值改变的行号
|
||||
private static Integer selectRow = null;
|
||||
|
||||
@Override
|
||||
public void registerListener(EventObject e) {
|
||||
super.registerListener(e);
|
||||
BasedataEdit fieldEdit = this.getView().getControl(ACCOUNT_ITEM);
|
||||
fieldEdit.addBeforeF7SelectListener(this);
|
||||
fieldEdit.addAfterF7SelectListener(this);
|
||||
|
||||
BasedataEdit fieldEditExpense = this.getView().getControl(EXPENSE_ITEM);
|
||||
fieldEditExpense.addBeforeF7SelectListener(this);
|
||||
fieldEditExpense.addAfterF7SelectListener(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterF7Select(AfterF7SelectEvent afterF7SelectEvent) {
|
||||
String name = ((BasedataEdit) afterF7SelectEvent.getSource()).getKey();
|
||||
if(ACCOUNT_ITEM.equals(name)){
|
||||
Long id = null;
|
||||
// 获取选中行
|
||||
ListSelectedRow selectRowList = afterF7SelectEvent.getListSelectedRow();
|
||||
Object inputValue = afterF7SelectEvent.getInputValue();
|
||||
if(selectRowList != null){//弹框选择
|
||||
id = (Long) selectRowList.getPrimaryKeyValue();
|
||||
}else if(inputValue != null){//模糊查询
|
||||
id=Long.valueOf(inputValue.toString());
|
||||
}
|
||||
if(id!=null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_accounts", QCP.equals,id);
|
||||
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter});
|
||||
DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow);
|
||||
boolean isEx = false;
|
||||
if(dynamicObject2!=null){
|
||||
isEx = dynamicObject2.get(EXPENSE_ITEM) == null;
|
||||
}
|
||||
if(isEx && dynamicObject1!=null&&selectRow!=null){
|
||||
DynamicObjectCollection zcgjEntryentity = (DynamicObjectCollection) dynamicObject1.get(MAP_ENTRY_ENTITY);
|
||||
if(zcgjEntryentity!=null){
|
||||
DynamicObject dynamicObject = zcgjEntryentity.get(0);
|
||||
DynamicObject itemDynamicObject= dynamicObject.getDynamicObject(prefix+"_entity_items");
|
||||
long aLong = itemDynamicObject.getLong("id");
|
||||
System.out.println();
|
||||
this.getModel().setValue(EXPENSE_ITEM,aLong,selectRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(EXPENSE_ITEM.equals(name)){
|
||||
Object inputValue = afterF7SelectEvent.getInputValue();
|
||||
if(inputValue!=null){
|
||||
String id = String.valueOf(inputValue) ;
|
||||
QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,Long.valueOf(id));
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter});
|
||||
Object value = this.getModel().getValue(ACCOUNT_ITEM, selectRow);
|
||||
if(value==null && load!=null && load.length>0){
|
||||
DynamicObject dynamicObject = load[0];
|
||||
long aLong = dynamicObject.getLong("zcgj_accounts_id");
|
||||
this.getModel().setValue(ACCOUNT_ITEM,aLong,selectRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeF7Select(BeforeF7SelectEvent arg0) {
|
||||
String name = arg0.getProperty().getName();
|
||||
if(name.equals(ACCOUNT_ITEM)){
|
||||
selectRow = arg0.getRow();
|
||||
if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){
|
||||
selectRow = arg0.getRow();
|
||||
((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this);
|
||||
}
|
||||
}else if(name.equals(EXPENSE_ITEM)){
|
||||
if("click".equals(arg0.getSourceMethod())){
|
||||
arg0.setCancel(true);
|
||||
ListShowParameter showParameter = ShowFormHelper.createShowListForm("er_expenseitemedit", true);
|
||||
showParameter.setCloseCallBack(new CloseCallBack(this,ACTION_ID_EXPENSE));
|
||||
this.getView().showForm(showParameter);
|
||||
}else if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){
|
||||
selectRow = arg0.getRow();
|
||||
((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
|
||||
super.closedCallBack(closedCallBackEvent);
|
||||
String actionId = closedCallBackEvent.getActionId();
|
||||
Object returnData = closedCallBackEvent.getReturnData();
|
||||
boolean current= true;
|
||||
if(returnData!=null && actionId.equals(ACTION_ID_EXPENSE)){
|
||||
//获取选中的索引
|
||||
int index = this.getModel().getEntryCurrentRowIndex(EXPENSE_ENTRY_ENTITY);
|
||||
//操作的行数据,获取之前的数据
|
||||
DynamicObject selectRow = this.getModel().getEntryRowEntity(EXPENSE_ENTRY_ENTITY, index);
|
||||
//克隆新的行
|
||||
DynamicObject insertRow = (DynamicObject) (new CloneUtils(false, false)).clone(selectRow);
|
||||
ListSelectedRowCollection listSelectedRows = (ListSelectedRowCollection) closedCallBackEvent.getReturnData();
|
||||
|
||||
for (ListSelectedRow listSelectedRow : listSelectedRows) {
|
||||
if(current){
|
||||
//选择行进行更改,其他行进行插入
|
||||
Object accountItem = this.getModel().getValue(ACCOUNT_ITEM, index);
|
||||
//给费用项目赋值
|
||||
this.getModel().setValue(EXPENSE_ITEM,listSelectedRow.getPrimaryKeyValue(),index);
|
||||
if(accountItem==null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter});
|
||||
if(load!=null && load.length>0){
|
||||
DynamicObject dynamicObject = load[0];
|
||||
long aLong = dynamicObject.getLong("zcgj_accounts_id");
|
||||
this.getModel().setValue(ACCOUNT_ITEM,aLong,index);
|
||||
}else{
|
||||
this.getModel().setValue(ACCOUNT_ITEM,null,index);
|
||||
}
|
||||
}
|
||||
current = false;
|
||||
}else{
|
||||
//Object accountItem = this.getModel().getValue(ACCOUNT_ITEM, index);
|
||||
//if(accountItem == null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter});
|
||||
if(load!=null && load.length>0){
|
||||
DynamicObject dynamicObject = load[0];
|
||||
DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_accounts");
|
||||
if(zcgjAccounts!=null){
|
||||
//会计科目
|
||||
insertRow.set(ACCOUNT_ITEM,zcgjAccounts);
|
||||
}
|
||||
}else{
|
||||
insertRow.set(ACCOUNT_ITEM,null);
|
||||
}
|
||||
//}
|
||||
//费用项目科目
|
||||
QFilter nameQFilterAccItem = new QFilter("id",QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject dynamicObjectAccItem = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "number,name", new QFilter[]{nameQFilterAccItem});
|
||||
insertRow.set(EXPENSE_ITEM,dynamicObjectAccItem);
|
||||
this.getModel().createNewEntryRow(EXPENSE_ENTRY_ENTITY,insertRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,197 @@
|
|||
package zcgj.zcdev.zcdev.fs.plugin.form;
|
||||
|
||||
import kd.bos.bill.AbstractBillPlugIn;
|
||||
import kd.bos.dataentity.entity.CloneUtils;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.datamodel.ListSelectedRow;
|
||||
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
||||
import kd.bos.form.CloseCallBack;
|
||||
import kd.bos.form.ShowFormHelper;
|
||||
import kd.bos.form.events.ClosedCallBackEvent;
|
||||
import kd.bos.form.field.BasedataEdit;
|
||||
import kd.bos.form.field.events.AfterF7SelectEvent;
|
||||
import kd.bos.form.field.events.AfterF7SelectListener;
|
||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||
import kd.bos.list.ListShowParameter;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
||||
import java.util.EventObject;
|
||||
|
||||
/**
|
||||
* 费用报销单会计科目与费用项目关联插件
|
||||
*/
|
||||
public class DailyreimbursExpAccPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener, AfterF7SelectListener {
|
||||
private static final Log log = LogFactory.getLog(DailyreimbursExpAccPlugin.class);
|
||||
//开发商标识
|
||||
private static final String prefix ="zcgj";
|
||||
|
||||
//界面回调标识(自定义)
|
||||
private final static String ACTION_ID="accountview_form";
|
||||
private final static String ACTION_ID_EXPENSE="expenseitem_form";
|
||||
//费用报销单的费用明细标识
|
||||
private final static String EXPENSE_ENTRY_ENTITY = "expenseentryentity";
|
||||
//会计科目与费用项目映射表分录
|
||||
private final static String MAP_TABLE = "zcgj_accountsitemsmap";
|
||||
//会计科目与费用项目映射表分录标识
|
||||
private final static String MAP_ENTRY_ENTITY = "zcgj_entryentity";
|
||||
|
||||
//费用报销中的费用项目标识
|
||||
private final static String EXPENSE_ITEM ="expenseitem";
|
||||
//费用报销中的会计科目标识
|
||||
private final static String ACCOUNT_ITEM ="zcgj_account_item";
|
||||
|
||||
//分录值改变的行号
|
||||
private static Integer selectRow = null;
|
||||
|
||||
@Override
|
||||
public void registerListener(EventObject e) {
|
||||
super.registerListener(e);
|
||||
BasedataEdit fieldEdit = this.getView().getControl(ACCOUNT_ITEM);
|
||||
fieldEdit.addBeforeF7SelectListener(this);
|
||||
fieldEdit.addAfterF7SelectListener(this);
|
||||
|
||||
BasedataEdit fieldEditExpense = this.getView().getControl(EXPENSE_ITEM);
|
||||
fieldEditExpense.addBeforeF7SelectListener(this);
|
||||
fieldEditExpense.addAfterF7SelectListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterF7Select(AfterF7SelectEvent afterF7SelectEvent) {
|
||||
String name = ((BasedataEdit) afterF7SelectEvent.getSource()).getKey();
|
||||
if(ACCOUNT_ITEM.equals(name)){
|
||||
Long id = null;
|
||||
// 获取选中行
|
||||
ListSelectedRow selectRowList = afterF7SelectEvent.getListSelectedRow();
|
||||
Object inputValue = afterF7SelectEvent.getInputValue();
|
||||
if(selectRowList != null){//弹框选择
|
||||
id = (Long) selectRowList.getPrimaryKeyValue();
|
||||
}else if(inputValue != null){//模糊查询
|
||||
id=Long.valueOf(inputValue.toString());
|
||||
}
|
||||
if(id!=null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_accounts",QCP.equals,id);
|
||||
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter});
|
||||
DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow);
|
||||
boolean isEx = false;
|
||||
if(dynamicObject2!=null){
|
||||
isEx = dynamicObject2.get(EXPENSE_ITEM) == null;
|
||||
}
|
||||
if(isEx && dynamicObject1!=null&&selectRow!=null){
|
||||
DynamicObjectCollection zcgjEntryentity = (DynamicObjectCollection) dynamicObject1.get(MAP_ENTRY_ENTITY);
|
||||
if(zcgjEntryentity!=null){
|
||||
DynamicObject dynamicObject = zcgjEntryentity.get(0);
|
||||
DynamicObject itemDynamicObject= dynamicObject.getDynamicObject(prefix+"_entity_items");
|
||||
long aLong = itemDynamicObject.getLong("id");
|
||||
System.out.println();
|
||||
this.getModel().setValue(EXPENSE_ITEM,aLong,selectRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(EXPENSE_ITEM.equals(name)){
|
||||
Object inputValue = afterF7SelectEvent.getInputValue();
|
||||
if(inputValue!=null){
|
||||
String id = String.valueOf(inputValue) ;
|
||||
QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,Long.valueOf(id));
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter});
|
||||
Object value = this.getModel().getValue(ACCOUNT_ITEM, selectRow);
|
||||
if(value==null && load!=null && load.length>0){
|
||||
DynamicObject dynamicObject = load[0];
|
||||
long aLong = dynamicObject.getLong("zcgj_accounts_id");
|
||||
this.getModel().setValue(ACCOUNT_ITEM,aLong,selectRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeF7Select(BeforeF7SelectEvent arg0) {
|
||||
String name = arg0.getProperty().getName();
|
||||
if(name.equals(ACCOUNT_ITEM)){
|
||||
selectRow = arg0.getRow();
|
||||
if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){
|
||||
selectRow = arg0.getRow();
|
||||
((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this);
|
||||
}
|
||||
}else if(name.equals(EXPENSE_ITEM)){
|
||||
if("click".equals(arg0.getSourceMethod())){
|
||||
arg0.setCancel(true);
|
||||
ListShowParameter showParameter = ShowFormHelper.createShowListForm("er_expenseitemedit", true);
|
||||
showParameter.setCloseCallBack(new CloseCallBack(this,ACTION_ID_EXPENSE));
|
||||
this.getView().showForm(showParameter);
|
||||
}else if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){
|
||||
selectRow = arg0.getRow();
|
||||
((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
|
||||
super.closedCallBack(closedCallBackEvent);
|
||||
String actionId = closedCallBackEvent.getActionId();
|
||||
Object returnData = closedCallBackEvent.getReturnData();
|
||||
boolean current= true;
|
||||
if(returnData!=null && actionId.equals(ACTION_ID_EXPENSE)){
|
||||
//获取选中的索引
|
||||
int index = this.getModel().getEntryCurrentRowIndex(EXPENSE_ENTRY_ENTITY);
|
||||
//操作的行数据,获取之前的数据
|
||||
DynamicObject selectRow = this.getModel().getEntryRowEntity(EXPENSE_ENTRY_ENTITY, index);
|
||||
//克隆新的行
|
||||
DynamicObject insertRow = (DynamicObject) (new CloneUtils(false, false)).clone(selectRow);
|
||||
ListSelectedRowCollection listSelectedRows = (ListSelectedRowCollection) closedCallBackEvent.getReturnData();
|
||||
|
||||
for (ListSelectedRow listSelectedRow : listSelectedRows) {
|
||||
if(current){
|
||||
//选择行进行更改,其他行进行插入
|
||||
Object accountItem = this.getModel().getValue(ACCOUNT_ITEM, index);
|
||||
//给费用项目赋值
|
||||
this.getModel().setValue(EXPENSE_ITEM,listSelectedRow.getPrimaryKeyValue(),index);
|
||||
if(accountItem==null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter});
|
||||
if(load!=null && load.length>0){
|
||||
DynamicObject dynamicObject = load[0];
|
||||
long aLong = dynamicObject.getLong("zcgj_accounts_id");
|
||||
this.getModel().setValue(ACCOUNT_ITEM,aLong,index);
|
||||
}else{
|
||||
this.getModel().setValue(ACCOUNT_ITEM,null,index);
|
||||
}
|
||||
}
|
||||
current = false;
|
||||
}else{
|
||||
//Object accountItem = this.getModel().getValue(ACCOUNT_ITEM, index);
|
||||
//if(accountItem == null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter});
|
||||
if(load!=null && load.length>0){
|
||||
DynamicObject dynamicObject = load[0];
|
||||
DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_accounts");
|
||||
if(zcgjAccounts!=null){
|
||||
//会计科目
|
||||
insertRow.set(ACCOUNT_ITEM,zcgjAccounts);
|
||||
}
|
||||
}else{
|
||||
insertRow.set(ACCOUNT_ITEM,null);
|
||||
}
|
||||
//}
|
||||
//费用项目科目
|
||||
QFilter nameQFilterAccItem = new QFilter("id",QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject dynamicObjectAccItem = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "number,name", new QFilter[]{nameQFilterAccItem});
|
||||
insertRow.set(EXPENSE_ITEM,dynamicObjectAccItem);
|
||||
this.getModel().createNewEntryRow(EXPENSE_ENTRY_ENTITY,insertRow);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -3,31 +3,16 @@ package zcgj.zcdev.zcdev.fs.plugin.form;
|
|||
import kd.bos.algo.DataSet;
|
||||
import kd.bos.algo.Row;
|
||||
import kd.bos.bill.AbstractBillPlugIn;
|
||||
import kd.bos.dataentity.entity.CloneUtils;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.datamodel.IDataModel;
|
||||
import kd.bos.entity.datamodel.ListSelectedRow;
|
||||
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
||||
import kd.bos.entity.datamodel.events.ChangeData;
|
||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||
import kd.bos.entity.operate.Submit;
|
||||
import kd.bos.form.CloseCallBack;
|
||||
import kd.bos.form.ShowFormHelper;
|
||||
import kd.bos.form.events.BeforeDoOperationEventArgs;
|
||||
import kd.bos.form.events.ClosedCallBackEvent;
|
||||
import kd.bos.form.field.BasedataEdit;
|
||||
import kd.bos.form.field.events.*;
|
||||
import kd.bos.list.ListFilterParameter;
|
||||
import kd.bos.list.ListShowParameter;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
|
@ -37,35 +22,16 @@ import java.time.temporal.ChronoUnit;
|
|||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.EventObject;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 费用报销单探亲检查插件
|
||||
*/
|
||||
public class DailyreimbursPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener, AfterF7SelectListener {
|
||||
private static final Log log = LogFactory.getLog(DailyreimbursPlugin.class);
|
||||
public class DailyreimbursVisitCheckPlugin extends AbstractBillPlugIn implements Plugin{
|
||||
private static final Log log = LogFactory.getLog(DailyreimbursVisitCheckPlugin.class);
|
||||
//开发商标识
|
||||
private static final String prefix ="zcgj";
|
||||
|
||||
//界面回调标识(自定义)
|
||||
private final static String ACTION_ID="accountview_form";
|
||||
private final static String ACTION_ID_EXPENSE="expenseitem_form";
|
||||
//费用报销单的费用明细标识
|
||||
private final static String EXPENSE_ENTRY_ENTITY = "expenseentryentity";
|
||||
//会计科目与费用项目映射表分录
|
||||
private final static String MAP_TABLE = "zcgj_accountsitemsmap";
|
||||
//会计科目与费用项目映射表分录标识
|
||||
private final static String MAP_ENTRY_ENTITY = "zcgj_entryentity";
|
||||
|
||||
//费用报销中的费用项目标识
|
||||
private final static String EXPENSE_ITEM ="expenseitem";
|
||||
//费用报销中的会计科目标识
|
||||
private final static String ACCOUNT_ITEM ="zcgj_account_item";
|
||||
|
||||
//分录值改变的行号
|
||||
private static Integer selectRow = null;
|
||||
|
||||
@Override
|
||||
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
|
||||
try{
|
||||
|
@ -195,13 +161,22 @@ public class DailyreimbursPlugin extends AbstractBillPlugIn implements Plugin,
|
|||
LocalDate firstDayYearsAgo = getFirstDayYearsAgo(dateToLocalDate(startTime), visitYear);
|
||||
Date lastDayOfYear = getLastDayOfYear(startTime);
|
||||
|
||||
List<String> billStatuslist = new ArrayList<>();
|
||||
billStatuslist.add("B");
|
||||
billStatuslist.add("C");
|
||||
billStatuslist.add("D");
|
||||
billStatuslist.add("E");
|
||||
billStatuslist.add("F");
|
||||
billStatuslist.add("G");
|
||||
// 查询条件
|
||||
QFilter[] filterArray = new QFilter[4];
|
||||
QFilter[] filterArray = new QFilter[5];
|
||||
//查询申请人下的今年的探亲差旅单据
|
||||
filterArray[0] = new QFilter(prefix+"_holiday_start_time", QCP.large_equals, firstDayOfYear);
|
||||
filterArray[1] = new QFilter(prefix+"_holiday_start_time", QCP.less_equals, lastDayOfYear);
|
||||
filterArray[2] = new QFilter("applier", QCP.equals, applierId);
|
||||
filterArray[3] = new QFilter(prefix+"_is_visit", QCP.equals, true);
|
||||
filterArray[4] = new QFilter("billstatus", QCP.in, billStatuslist);
|
||||
|
||||
DataSet dateSet = QueryServiceHelper.queryDataSet(
|
||||
this.getClass().getName(),
|
||||
"er_dailyreimbursebill",
|
||||
|
@ -300,234 +275,6 @@ public class DailyreimbursPlugin extends AbstractBillPlugIn implements Plugin,
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerListener(EventObject e) {
|
||||
super.registerListener(e);
|
||||
BasedataEdit fieldEdit = this.getView().getControl(ACCOUNT_ITEM);
|
||||
fieldEdit.addBeforeF7SelectListener(this);
|
||||
fieldEdit.addAfterF7SelectListener(this);
|
||||
|
||||
BasedataEdit fieldEditExpense = this.getView().getControl(EXPENSE_ITEM);
|
||||
fieldEditExpense.addBeforeF7SelectListener(this);
|
||||
fieldEditExpense.addAfterF7SelectListener(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterF7Select(AfterF7SelectEvent afterF7SelectEvent) {
|
||||
String name = ((BasedataEdit) afterF7SelectEvent.getSource()).getKey();
|
||||
if(ACCOUNT_ITEM.equals(name)){
|
||||
Long id = null;
|
||||
// 获取选中行
|
||||
ListSelectedRow selectRowList = afterF7SelectEvent.getListSelectedRow();
|
||||
Object inputValue = afterF7SelectEvent.getInputValue();
|
||||
if(selectRowList != null){//弹框选择
|
||||
id = (Long) selectRowList.getPrimaryKeyValue();
|
||||
}else if(inputValue != null){//模糊查询
|
||||
id=Long.valueOf(inputValue.toString());
|
||||
}
|
||||
if(id!=null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_accounts",QCP.equals,id);
|
||||
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter});
|
||||
DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow);
|
||||
boolean isEx = false;
|
||||
if(dynamicObject2!=null){
|
||||
isEx = dynamicObject2.get(EXPENSE_ITEM) == null;
|
||||
}
|
||||
if(isEx && dynamicObject1!=null&&selectRow!=null){
|
||||
DynamicObjectCollection zcgjEntryentity = (DynamicObjectCollection) dynamicObject1.get(MAP_ENTRY_ENTITY);
|
||||
if(zcgjEntryentity!=null){
|
||||
DynamicObject dynamicObject = zcgjEntryentity.get(0);
|
||||
DynamicObject itemDynamicObject= dynamicObject.getDynamicObject(prefix+"_entity_items");
|
||||
long aLong = itemDynamicObject.getLong("id");
|
||||
System.out.println();
|
||||
this.getModel().setValue(EXPENSE_ITEM,aLong,selectRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(EXPENSE_ITEM.equals(name)){
|
||||
Object inputValue = afterF7SelectEvent.getInputValue();
|
||||
if(inputValue!=null){
|
||||
String id = String.valueOf(inputValue) ;
|
||||
QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,Long.valueOf(id));
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter});
|
||||
Object value = this.getModel().getValue(ACCOUNT_ITEM, selectRow);
|
||||
if(value==null && load!=null && load.length>0){
|
||||
DynamicObject dynamicObject = load[0];
|
||||
long aLong = dynamicObject.getLong("zcgj_accounts_id");
|
||||
this.getModel().setValue(ACCOUNT_ITEM,aLong,selectRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void beforeF7Select(BeforeF7SelectEvent arg0) {
|
||||
String name = arg0.getProperty().getName();
|
||||
if(name.equals(ACCOUNT_ITEM)){
|
||||
selectRow = arg0.getRow();
|
||||
/* List<QFilter> qFilterList = new ArrayList<QFilter>();
|
||||
qFilterList.add(new QFilter("number", QCP.like,"Sups%"));
|
||||
arg0.setCustomQFilters(qFilterList);*/
|
||||
|
||||
/*if("click".equals(arg0.getSourceMethod())){
|
||||
arg0.setCancel(true);
|
||||
Object value = this.getModel().getValue("zcgj_accounttable_number");
|
||||
DynamicObject costcompany = (DynamicObject)this.getModel().getValue("costcompany");
|
||||
long costcompanyId = costcompany.getLong("id");
|
||||
//设置自定义F7弹框,增加过滤条件
|
||||
List<QFilter> qFilterList = new ArrayList<QFilter>();
|
||||
qFilterList.add(new QFilter("accounttable.number", QCP.equals,value));
|
||||
//qFilterList.add(new QFilter("createorg", QCP.equals,Long.parseLong(costcompanyId+"")));
|
||||
|
||||
ListFilterParameter listFilterParameter =new ListFilterParameter(qFilterList,null);
|
||||
ListShowParameter showParameter = ShowFormHelper.createShowListForm("bd_accountview", true);
|
||||
showParameter.setCloseCallBack(new CloseCallBack(this,ACTION_ID));
|
||||
showParameter.setListFilterParameter(listFilterParameter);
|
||||
this.getView().showForm(showParameter);
|
||||
}else if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){
|
||||
selectRow = arg0.getRow();
|
||||
((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this);
|
||||
}*/
|
||||
if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){
|
||||
selectRow = arg0.getRow();
|
||||
((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this);
|
||||
}
|
||||
}else if(name.equals(EXPENSE_ITEM)){
|
||||
if("click".equals(arg0.getSourceMethod())){
|
||||
arg0.setCancel(true);
|
||||
ListShowParameter showParameter = ShowFormHelper.createShowListForm("er_expenseitemedit", true);
|
||||
showParameter.setCloseCallBack(new CloseCallBack(this,ACTION_ID_EXPENSE));
|
||||
this.getView().showForm(showParameter);
|
||||
}else if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){
|
||||
selectRow = arg0.getRow();
|
||||
((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
|
||||
super.closedCallBack(closedCallBackEvent);
|
||||
String actionId = closedCallBackEvent.getActionId();
|
||||
Object returnData = closedCallBackEvent.getReturnData();
|
||||
boolean current= true;
|
||||
|
||||
/*if(returnData!=null && actionId.equals(ACTION_ID)){
|
||||
//获取选中的索引
|
||||
int index = this.getModel().getEntryCurrentRowIndex(EXPENSE_ENTRY_ENTITY);
|
||||
//操作的行数据,获取之前的数据
|
||||
DynamicObject selectRow = this.getModel().getEntryRowEntity(EXPENSE_ENTRY_ENTITY, index);
|
||||
//克隆新的行
|
||||
DynamicObject insertRow = (DynamicObject) (new CloneUtils(false, false)).clone(selectRow);
|
||||
ListSelectedRowCollection listSelectedRows = (ListSelectedRowCollection) closedCallBackEvent.getReturnData();
|
||||
|
||||
for (ListSelectedRow listSelectedRow : listSelectedRows) {
|
||||
if(current){
|
||||
//选择行进行更改,其他行进行插入
|
||||
//给会计科目赋值
|
||||
this.getModel().setValue(ACCOUNT_ITEM,listSelectedRow.getPrimaryKeyValue(),index);
|
||||
Object expense = this.getModel().getValue(EXPENSE_ITEM, index);
|
||||
if(expense == null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_accounts",QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter});
|
||||
if(dynamicObject1!=null){
|
||||
DynamicObjectCollection zcgjEntryentity = (DynamicObjectCollection) dynamicObject1.get(MAP_ENTRY_ENTITY);
|
||||
if(zcgjEntryentity!=null){
|
||||
DynamicObject dynamicObject = zcgjEntryentity.get(0);
|
||||
DynamicObject itemDynamicObject= dynamicObject.getDynamicObject(prefix+"_entity_items");
|
||||
long aLong = itemDynamicObject.getLong("id");
|
||||
this.getModel().setValue(EXPENSE_ITEM,aLong,index);
|
||||
}else{
|
||||
this.getModel().setValue(EXPENSE_ITEM,null,index);
|
||||
}
|
||||
}else{
|
||||
this.getModel().setValue(EXPENSE_ITEM,null,index);
|
||||
}
|
||||
}
|
||||
current = false;
|
||||
}else{
|
||||
Object expense = this.getModel().getValue(EXPENSE_ITEM, index);
|
||||
if(expense==null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_accounts",QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter});
|
||||
if(dynamicObject1!=null){
|
||||
DynamicObjectCollection zcgjEntryentity = (DynamicObjectCollection) dynamicObject1.get(MAP_ENTRY_ENTITY);
|
||||
if(zcgjEntryentity!=null){
|
||||
DynamicObject dynamicObject = zcgjEntryentity.get(0);
|
||||
DynamicObject itemDynamicObject= dynamicObject.getDynamicObject(prefix+"_entity_items");
|
||||
//费用项目
|
||||
insertRow.set(EXPENSE_ITEM,itemDynamicObject);
|
||||
}
|
||||
}else{
|
||||
insertRow.set(EXPENSE_ITEM,null);
|
||||
}
|
||||
}
|
||||
//会计科目
|
||||
QFilter nameQFilterAccItem = new QFilter("id",QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject dynamicObjectAccItem = BusinessDataServiceHelper.loadSingle("bd_accountview", "number,name", new QFilter[]{nameQFilterAccItem});
|
||||
insertRow.set(ACCOUNT_ITEM,dynamicObjectAccItem);
|
||||
this.getModel().createNewEntryRow(EXPENSE_ENTRY_ENTITY,insertRow);
|
||||
}
|
||||
}
|
||||
}else */
|
||||
if(returnData!=null && actionId.equals(ACTION_ID_EXPENSE)){
|
||||
//获取选中的索引
|
||||
int index = this.getModel().getEntryCurrentRowIndex(EXPENSE_ENTRY_ENTITY);
|
||||
//操作的行数据,获取之前的数据
|
||||
DynamicObject selectRow = this.getModel().getEntryRowEntity(EXPENSE_ENTRY_ENTITY, index);
|
||||
//克隆新的行
|
||||
DynamicObject insertRow = (DynamicObject) (new CloneUtils(false, false)).clone(selectRow);
|
||||
ListSelectedRowCollection listSelectedRows = (ListSelectedRowCollection) closedCallBackEvent.getReturnData();
|
||||
|
||||
for (ListSelectedRow listSelectedRow : listSelectedRows) {
|
||||
if(current){
|
||||
//选择行进行更改,其他行进行插入
|
||||
Object accountItem = this.getModel().getValue(ACCOUNT_ITEM, index);
|
||||
//给费用项目赋值
|
||||
this.getModel().setValue(EXPENSE_ITEM,listSelectedRow.getPrimaryKeyValue(),index);
|
||||
if(accountItem==null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter});
|
||||
if(load!=null && load.length>0){
|
||||
DynamicObject dynamicObject = load[0];
|
||||
long aLong = dynamicObject.getLong("zcgj_accounts_id");
|
||||
this.getModel().setValue(ACCOUNT_ITEM,aLong,index);
|
||||
}else{
|
||||
this.getModel().setValue(ACCOUNT_ITEM,null,index);
|
||||
}
|
||||
}
|
||||
current = false;
|
||||
}else{
|
||||
//Object accountItem = this.getModel().getValue(ACCOUNT_ITEM, index);
|
||||
//if(accountItem == null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter});
|
||||
if(load!=null && load.length>0){
|
||||
DynamicObject dynamicObject = load[0];
|
||||
DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_accounts");
|
||||
if(zcgjAccounts!=null){
|
||||
//会计科目
|
||||
insertRow.set(ACCOUNT_ITEM,zcgjAccounts);
|
||||
}
|
||||
}else{
|
||||
insertRow.set(ACCOUNT_ITEM,null);
|
||||
}
|
||||
//}
|
||||
//费用项目科目
|
||||
QFilter nameQFilterAccItem = new QFilter("id",QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject dynamicObjectAccItem = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "number,name", new QFilter[]{nameQFilterAccItem});
|
||||
insertRow.set(EXPENSE_ITEM,dynamicObjectAccItem);
|
||||
this.getModel().createNewEntryRow(EXPENSE_ENTRY_ENTITY,insertRow);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 java.util.Date 转换为 java.time.LocalDate
|
||||
* @param date java.util.Date
|
|
@ -0,0 +1,87 @@
|
|||
package zcgj.zcdev.zcdev.fs.plugin.form;
|
||||
|
||||
import kd.bos.bill.AbstractBillPlugIn;
|
||||
import kd.bos.dataentity.entity.CloneUtils;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.datamodel.ListSelectedRow;
|
||||
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
||||
import kd.bos.entity.operate.Submit;
|
||||
import kd.bos.form.CloseCallBack;
|
||||
import kd.bos.form.ShowFormHelper;
|
||||
import kd.bos.form.events.BeforeDoOperationEventArgs;
|
||||
import kd.bos.form.events.ClosedCallBackEvent;
|
||||
import kd.bos.form.field.BasedataEdit;
|
||||
import kd.bos.form.field.events.AfterF7SelectEvent;
|
||||
import kd.bos.form.field.events.AfterF7SelectListener;
|
||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||
import kd.bos.list.ListShowParameter;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Date;
|
||||
import java.util.EventObject;
|
||||
|
||||
/**
|
||||
* 预付单去年合同提醒插件
|
||||
*/
|
||||
public class PrepaybillContractPlugin extends AbstractBillPlugIn implements Plugin{
|
||||
|
||||
private static final Log log = LogFactory.getLog(PrepaybillContractPlugin.class);
|
||||
//开发商标识
|
||||
private static final String prefix ="zcgj";
|
||||
|
||||
//预付单的关联合同标识
|
||||
private final static String CONTRACT_ENTRY_ENTITY = "contractentry";
|
||||
|
||||
@Override
|
||||
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
|
||||
|
||||
if((args.getSource() instanceof Submit) ) {
|
||||
Submit source = (Submit) args.getSource();
|
||||
if (source.getOperateKey().equals("submit")) {
|
||||
//获取当前页面的数据包
|
||||
DynamicObject dataEntity = this.getModel().getDataEntity(true);
|
||||
//获取单据体数据的集合
|
||||
DynamicObjectCollection goodsEntities=dataEntity.getDynamicObjectCollection(CONTRACT_ENTRY_ENTITY);
|
||||
boolean isMsg = false;
|
||||
for (DynamicObject entryObj : goodsEntities) {
|
||||
//获取合同签订日期
|
||||
Date signdate = entryObj.getDate("signdate");
|
||||
LocalDate localDate = dateToLocalDate(signdate);
|
||||
int signdateYear = localDate.getYear();
|
||||
int currentYear = LocalDate.now().getYear();
|
||||
if(signdateYear<currentYear) {
|
||||
isMsg = true;
|
||||
}
|
||||
}
|
||||
if(isMsg){
|
||||
this.getView().showTipNotification("去年合同不占用本年预算");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 将 java.util.Date 转换为 java.time.LocalDate
|
||||
* @param date java.util.Date
|
||||
* @return java.time.LocalDate
|
||||
*/
|
||||
public static LocalDate dateToLocalDate(Date date) {
|
||||
if (date == null) {
|
||||
throw new IllegalArgumentException("日期不能为 null");
|
||||
}
|
||||
return date.toInstant()
|
||||
.atZone(ZoneId.systemDefault())
|
||||
.toLocalDate();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,198 @@
|
|||
package zcgj.zcdev.zcdev.fs.plugin.form;
|
||||
|
||||
import kd.bos.bill.AbstractBillPlugIn;
|
||||
import kd.bos.dataentity.entity.CloneUtils;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.datamodel.ListSelectedRow;
|
||||
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
||||
import kd.bos.form.CloseCallBack;
|
||||
import kd.bos.form.ShowFormHelper;
|
||||
import kd.bos.form.events.ClosedCallBackEvent;
|
||||
import kd.bos.form.field.BasedataEdit;
|
||||
import kd.bos.form.field.events.AfterF7SelectEvent;
|
||||
import kd.bos.form.field.events.AfterF7SelectListener;
|
||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||
import kd.bos.list.ListShowParameter;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
||||
import java.util.EventObject;
|
||||
|
||||
/**
|
||||
* 预付单会计科目与费用项目关联插件
|
||||
*/
|
||||
public class PrepaybillExpAccPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener, AfterF7SelectListener {
|
||||
|
||||
private static final Log log = LogFactory.getLog(PrepaybillExpAccPlugin.class);
|
||||
//开发商标识
|
||||
private static final String prefix ="zcgj";
|
||||
|
||||
//界面回调标识(自定义)
|
||||
private final static String ACTION_ID="accountview_form";
|
||||
private final static String ACTION_ID_EXPENSE="expenseitem_form";
|
||||
|
||||
//预付单的预付信息标识
|
||||
private final static String EXPENSE_ENTRY_ENTITY = "expenseentryentity";
|
||||
|
||||
//会计科目与费用项目映射表分录
|
||||
private final static String MAP_TABLE = "zcgj_accountsitemsmap";
|
||||
//会计科目与费用项目映射表分录标识
|
||||
private final static String MAP_ENTRY_ENTITY = "zcgj_entryentity";
|
||||
|
||||
//预付单中的费用项目标识
|
||||
private final static String EXPENSE_ITEM ="expenseitem";
|
||||
//预付单中的会计科目标识
|
||||
private final static String ACCOUNT_ITEM ="zcgj_account_item";
|
||||
|
||||
//分录值改变的行号
|
||||
private static Integer selectRow = null;
|
||||
|
||||
@Override
|
||||
public void registerListener(EventObject e) {
|
||||
super.registerListener(e);
|
||||
BasedataEdit fieldEdit = this.getView().getControl(ACCOUNT_ITEM);
|
||||
fieldEdit.addBeforeF7SelectListener(this);
|
||||
fieldEdit.addAfterF7SelectListener(this);
|
||||
|
||||
BasedataEdit fieldEditExpense = this.getView().getControl(EXPENSE_ITEM);
|
||||
fieldEditExpense.addBeforeF7SelectListener(this);
|
||||
fieldEditExpense.addAfterF7SelectListener(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterF7Select(AfterF7SelectEvent afterF7SelectEvent) {
|
||||
String name = ((BasedataEdit) afterF7SelectEvent.getSource()).getKey();
|
||||
if(ACCOUNT_ITEM.equals(name)){
|
||||
Long id = null;
|
||||
// 获取选中行
|
||||
ListSelectedRow selectRowList = afterF7SelectEvent.getListSelectedRow();
|
||||
Object inputValue = afterF7SelectEvent.getInputValue();
|
||||
if(selectRowList != null){//弹框选择
|
||||
id = (Long) selectRowList.getPrimaryKeyValue();
|
||||
}else if(inputValue != null){//模糊查询
|
||||
id=Long.valueOf(inputValue.toString());
|
||||
}
|
||||
if(id!=null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_accounts", QCP.equals,id);
|
||||
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter});
|
||||
DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow);
|
||||
boolean isEx = false;
|
||||
if(dynamicObject2!=null){
|
||||
isEx = dynamicObject2.get(EXPENSE_ITEM) == null;
|
||||
}
|
||||
if(isEx && dynamicObject1!=null&&selectRow!=null){
|
||||
DynamicObjectCollection zcgjEntryentity = (DynamicObjectCollection) dynamicObject1.get(MAP_ENTRY_ENTITY);
|
||||
if(zcgjEntryentity!=null){
|
||||
DynamicObject dynamicObject = zcgjEntryentity.get(0);
|
||||
DynamicObject itemDynamicObject= dynamicObject.getDynamicObject(prefix+"_entity_items");
|
||||
long aLong = itemDynamicObject.getLong("id");
|
||||
System.out.println();
|
||||
this.getModel().setValue(EXPENSE_ITEM,aLong,selectRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}else if(EXPENSE_ITEM.equals(name)){
|
||||
Object inputValue = afterF7SelectEvent.getInputValue();
|
||||
if(inputValue!=null){
|
||||
String id = String.valueOf(inputValue) ;
|
||||
QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,Long.valueOf(id));
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter});
|
||||
Object value = this.getModel().getValue(ACCOUNT_ITEM, selectRow);
|
||||
if(value==null && load!=null && load.length>0){
|
||||
DynamicObject dynamicObject = load[0];
|
||||
long aLong = dynamicObject.getLong("zcgj_accounts_id");
|
||||
this.getModel().setValue(ACCOUNT_ITEM,aLong,selectRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeF7Select(BeforeF7SelectEvent arg0) {
|
||||
String name = arg0.getProperty().getName();
|
||||
if(name.equals(ACCOUNT_ITEM)){
|
||||
selectRow = arg0.getRow();
|
||||
if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){
|
||||
selectRow = arg0.getRow();
|
||||
((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this);
|
||||
}
|
||||
}else if(name.equals(EXPENSE_ITEM)){
|
||||
if("click".equals(arg0.getSourceMethod())){
|
||||
arg0.setCancel(true);
|
||||
ListShowParameter showParameter = ShowFormHelper.createShowListForm("er_expenseitemedit", true);
|
||||
showParameter.setCloseCallBack(new CloseCallBack(this,ACTION_ID_EXPENSE));
|
||||
this.getView().showForm(showParameter);
|
||||
}else if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){
|
||||
selectRow = arg0.getRow();
|
||||
((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
|
||||
super.closedCallBack(closedCallBackEvent);
|
||||
String actionId = closedCallBackEvent.getActionId();
|
||||
Object returnData = closedCallBackEvent.getReturnData();
|
||||
boolean current= true;
|
||||
if(returnData!=null && actionId.equals(ACTION_ID_EXPENSE)){
|
||||
//获取选中的索引
|
||||
int index = this.getModel().getEntryCurrentRowIndex(EXPENSE_ENTRY_ENTITY);
|
||||
//操作的行数据,获取之前的数据
|
||||
DynamicObject selectRow = this.getModel().getEntryRowEntity(EXPENSE_ENTRY_ENTITY, index);
|
||||
//克隆新的行
|
||||
DynamicObject insertRow = (DynamicObject) (new CloneUtils(false, false)).clone(selectRow);
|
||||
ListSelectedRowCollection listSelectedRows = (ListSelectedRowCollection) closedCallBackEvent.getReturnData();
|
||||
|
||||
for (ListSelectedRow listSelectedRow : listSelectedRows) {
|
||||
if(current){
|
||||
//选择行进行更改,其他行进行插入
|
||||
Object accountItem = this.getModel().getValue(ACCOUNT_ITEM, index);
|
||||
//给费用项目赋值
|
||||
this.getModel().setValue(EXPENSE_ITEM,listSelectedRow.getPrimaryKeyValue(),index);
|
||||
if(accountItem==null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter});
|
||||
if(load!=null && load.length>0){
|
||||
DynamicObject dynamicObject = load[0];
|
||||
long aLong = dynamicObject.getLong("zcgj_accounts_id");
|
||||
this.getModel().setValue(ACCOUNT_ITEM,aLong,index);
|
||||
}else{
|
||||
this.getModel().setValue(ACCOUNT_ITEM,null,index);
|
||||
}
|
||||
}
|
||||
current = false;
|
||||
}else{
|
||||
//Object accountItem = this.getModel().getValue(ACCOUNT_ITEM, index);
|
||||
//if(accountItem == null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter});
|
||||
if(load!=null && load.length>0){
|
||||
DynamicObject dynamicObject = load[0];
|
||||
DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_accounts");
|
||||
if(zcgjAccounts!=null){
|
||||
//会计科目
|
||||
insertRow.set(ACCOUNT_ITEM,zcgjAccounts);
|
||||
}
|
||||
}else{
|
||||
insertRow.set(ACCOUNT_ITEM,null);
|
||||
}
|
||||
//}
|
||||
//费用项目科目
|
||||
QFilter nameQFilterAccItem = new QFilter("id",QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject dynamicObjectAccItem = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "number,name", new QFilter[]{nameQFilterAccItem});
|
||||
insertRow.set(EXPENSE_ITEM,dynamicObjectAccItem);
|
||||
this.getModel().createNewEntryRow(EXPENSE_ENTRY_ENTITY,insertRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -6,8 +6,6 @@ import kd.bos.dataentity.entity.DynamicObject;
|
|||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.datamodel.ListSelectedRow;
|
||||
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
||||
import kd.bos.entity.datamodel.events.ChangeData;
|
||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||
import kd.bos.form.CloseCallBack;
|
||||
import kd.bos.form.ShowFormHelper;
|
||||
import kd.bos.form.events.ClosedCallBackEvent;
|
||||
|
@ -16,27 +14,22 @@ import kd.bos.form.field.events.AfterF7SelectEvent;
|
|||
import kd.bos.form.field.events.AfterF7SelectListener;
|
||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||
import kd.bos.list.ListFilterParameter;
|
||||
import kd.bos.list.ListShowParameter;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.tree.TreeFilterParameter;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.EventObject;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 对公报销单插件
|
||||
* 对公报销单会计科目与费用项目关联插件
|
||||
*/
|
||||
public class PublicreimbursebillPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener, AfterF7SelectListener {
|
||||
public class PublicreimbursebillExpAccPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener, AfterF7SelectListener {
|
||||
|
||||
private static final Log log = LogFactory.getLog(PublicreimbursebillPlugin.class);
|
||||
private static final Log log = LogFactory.getLog(PublicreimbursebillExpAccPlugin.class);
|
||||
//开发商标识
|
||||
private static final String prefix ="zcgj";
|
||||
|
||||
|
@ -70,19 +63,7 @@ public class PublicreimbursebillPlugin extends AbstractBillPlugIn implements Plu
|
|||
BasedataEdit fieldEditExpense = this.getView().getControl(EXPENSE_ITEM);
|
||||
fieldEditExpense.addBeforeF7SelectListener(this);
|
||||
fieldEditExpense.addAfterF7SelectListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void propertyChanged(PropertyChangedArgs e) {
|
||||
super.propertyChanged(e);
|
||||
String name = e.getProperty().getName();
|
||||
if(name.equals(ACCOUNT_ITEM)){
|
||||
ChangeData[] changeSet = e.getChangeSet();
|
||||
DynamicObject dynamicObject = (DynamicObject)changeSet[0].getNewValue();
|
||||
System.out.println();
|
||||
//Object fh = String.valueOf(dynamicObject.get(8));
|
||||
//this.getModel().setValue("ooo0_remark",fh);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -99,9 +80,9 @@ public class PublicreimbursebillPlugin extends AbstractBillPlugIn implements Plu
|
|||
id=Long.valueOf(inputValue.toString());
|
||||
}
|
||||
if(id!=null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_accounts",QCP.equals,id);
|
||||
QFilter nameQFilter = new QFilter(prefix+"_accounts", QCP.equals,id);
|
||||
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter});
|
||||
DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection("expenseentryentity").get(selectRow);
|
||||
DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow);
|
||||
boolean isEx = false;
|
||||
if(dynamicObject2!=null){
|
||||
isEx = dynamicObject2.get(EXPENSE_ITEM) == null;
|
||||
|
@ -130,7 +111,6 @@ public class PublicreimbursebillPlugin extends AbstractBillPlugIn implements Plu
|
|||
this.getModel().setValue(ACCOUNT_ITEM,aLong,selectRow);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -140,32 +120,6 @@ public class PublicreimbursebillPlugin extends AbstractBillPlugIn implements Plu
|
|||
String name = arg0.getProperty().getName();
|
||||
if(name.equals(ACCOUNT_ITEM)){
|
||||
selectRow = arg0.getRow();
|
||||
/*if("click".equals(arg0.getSourceMethod())){
|
||||
arg0.setCancel(true);
|
||||
Object value = this.getModel().getValue("zcgj_accounttable_number");
|
||||
DynamicObject costcompany = (DynamicObject)this.getModel().getValue("costcompany");
|
||||
long costcompanyId = costcompany.getLong("id");
|
||||
//((ListShowParameter)beforeF7SelectEvent.getFormShowParameter()).getTreeFilterParameter().getQFilters().add(new QFilter("name", "=", "长度"))
|
||||
//设置自定义F7弹框,增加过滤条件
|
||||
List<QFilter> qFilterList = new ArrayList<QFilter>();
|
||||
qFilterList.add(new QFilter("accounttable.number", QCP.equals,value));
|
||||
//qFilterList.add(new QFilter("createorg", QCP.equals,Long.parseLong(costcompanyId+"")));
|
||||
ListFilterParameter listFilterParameter =new ListFilterParameter(qFilterList,null);
|
||||
ListShowParameter showParameter = ShowFormHelper.createShowListForm("bd_accountview", true);
|
||||
showParameter.setCloseCallBack(new CloseCallBack(this,ACTION_ID));
|
||||
showParameter.setListFilterParameter(listFilterParameter);
|
||||
|
||||
List<QFilter> qFilterList1 = new ArrayList<QFilter>();
|
||||
qFilterList1.add(new QFilter("accounttable.number", QCP.equals,value));
|
||||
TreeFilterParameter treeFilterParameter = new TreeFilterParameter();
|
||||
treeFilterParameter.setQFilters(qFilterList1);
|
||||
showParameter.setTreeFilterParameter(treeFilterParameter);
|
||||
|
||||
this.getView().showForm(showParameter);
|
||||
}else if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){
|
||||
selectRow = arg0.getRow();
|
||||
((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this);
|
||||
}*/
|
||||
if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){
|
||||
selectRow = arg0.getRow();
|
||||
((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this);
|
||||
|
@ -189,67 +143,6 @@ public class PublicreimbursebillPlugin extends AbstractBillPlugIn implements Plu
|
|||
String actionId = closedCallBackEvent.getActionId();
|
||||
Object returnData = closedCallBackEvent.getReturnData();
|
||||
boolean current= true;
|
||||
|
||||
/*if(returnData!=null && actionId.equals(ACTION_ID)){
|
||||
//获取选中的索引
|
||||
int index = this.getModel().getEntryCurrentRowIndex(EXPENSE_ENTRY_ENTITY);
|
||||
//操作的行数据,获取之前的数据
|
||||
DynamicObject selectRow = this.getModel().getEntryRowEntity(EXPENSE_ENTRY_ENTITY, index);
|
||||
//克隆新的行
|
||||
DynamicObject insertRow = (DynamicObject) (new CloneUtils(false, false)).clone(selectRow);
|
||||
ListSelectedRowCollection listSelectedRows = (ListSelectedRowCollection) closedCallBackEvent.getReturnData();
|
||||
|
||||
for (ListSelectedRow listSelectedRow : listSelectedRows) {
|
||||
if(current){
|
||||
//选择行进行更改,其他行进行插入
|
||||
//给会计科目赋值
|
||||
Object expense = this.getModel().getValue(EXPENSE_ITEM, index);
|
||||
this.getModel().setValue(ACCOUNT_ITEM,listSelectedRow.getPrimaryKeyValue(),index);
|
||||
if(expense==null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_accounts", QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter});
|
||||
if(dynamicObject1!=null){
|
||||
DynamicObjectCollection zcgjEntryentity = (DynamicObjectCollection) dynamicObject1.get(MAP_ENTRY_ENTITY);
|
||||
if(zcgjEntryentity!=null){
|
||||
DynamicObject dynamicObject = zcgjEntryentity.get(0);
|
||||
DynamicObject itemDynamicObject= dynamicObject.getDynamicObject(prefix+"_entity_items");
|
||||
long aLong = itemDynamicObject.getLong("id");
|
||||
this.getModel().setValue(EXPENSE_ITEM,aLong,index);
|
||||
}else{
|
||||
this.getModel().setValue(EXPENSE_ITEM,null,index);
|
||||
}
|
||||
}else{
|
||||
this.getModel().setValue(EXPENSE_ITEM,null,index);
|
||||
}
|
||||
}
|
||||
|
||||
current = false;
|
||||
}else{
|
||||
Object expense = this.getModel().getValue(EXPENSE_ITEM, index);
|
||||
if(expense==null){
|
||||
QFilter nameQFilter = new QFilter(prefix+"_accounts",QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter});
|
||||
if(dynamicObject1!=null){
|
||||
DynamicObjectCollection zcgjEntryentity = (DynamicObjectCollection) dynamicObject1.get(MAP_ENTRY_ENTITY);
|
||||
if(zcgjEntryentity!=null){
|
||||
DynamicObject dynamicObject = zcgjEntryentity.get(0);
|
||||
DynamicObject itemDynamicObject= dynamicObject.getDynamicObject(prefix+"_entity_items");
|
||||
//费用项目
|
||||
insertRow.set(EXPENSE_ITEM,itemDynamicObject);
|
||||
}
|
||||
}else{
|
||||
insertRow.set(EXPENSE_ITEM,null);
|
||||
}
|
||||
}
|
||||
//会计科目
|
||||
QFilter nameQFilterAccItem = new QFilter("id",QCP.equals,listSelectedRow.getPrimaryKeyValue());
|
||||
DynamicObject dynamicObjectAccItem = BusinessDataServiceHelper.loadSingle("bd_accountview", "number,name", new QFilter[]{nameQFilterAccItem});
|
||||
insertRow.set(ACCOUNT_ITEM,dynamicObjectAccItem);
|
||||
this.getModel().createNewEntryRow(EXPENSE_ENTRY_ENTITY,insertRow);
|
||||
|
||||
}
|
||||
}
|
||||
}else*/
|
||||
if(returnData!=null && actionId.equals(ACTION_ID_EXPENSE)){
|
||||
//获取选中的索引
|
||||
int index = this.getModel().getEntryCurrentRowIndex(EXPENSE_ENTRY_ENTITY);
|
||||
|
@ -298,10 +191,8 @@ public class PublicreimbursebillPlugin extends AbstractBillPlugIn implements Plu
|
|||
DynamicObject dynamicObjectAccItem = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "number,name", new QFilter[]{nameQFilterAccItem});
|
||||
insertRow.set(EXPENSE_ITEM,dynamicObjectAccItem);
|
||||
this.getModel().createNewEntryRow(EXPENSE_ENTRY_ENTITY,insertRow);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -131,7 +131,22 @@ public class BudgetActuRptQueryPlugin extends AbstractReportListDataPlugin {
|
|||
}
|
||||
//年份-(预算&实际)/项目/金额
|
||||
Map<String,Map<String,BigDecimal>> countMap = new HashMap<>();
|
||||
|
||||
List<QFilter> searchFilterList1 = new ArrayList<>();
|
||||
//searchFilterList.add(new QFilter(DEV_KEY+"_year", QCP.equals, getFirstDayOfYear(year)));
|
||||
DataSet queryUserDataSet = QueryServiceHelper.queryDataSet(this.getClass().getName() + Bill_ANNUAL_BUDGET,
|
||||
Bill_ANNUAL_BUDGET, selectSettlementFields.toString(), searchFilterList1.toArray(new QFilter [] {}), null).orderBy(new String[]{DEV_KEY+"_user",DEV_KEY+"_year"});
|
||||
|
||||
Set<Long> userSet = new HashSet<>();
|
||||
for (Row row : queryUserDataSet) {
|
||||
Long aLong = row.getLong(DEV_KEY + "_user");
|
||||
userSet.add(aLong);
|
||||
}
|
||||
|
||||
for (Long userId : allUsersOfOrg) {
|
||||
if(!userSet.contains(userId)){
|
||||
continue;
|
||||
}
|
||||
Map<String, Object> userInfoByID = UserServiceHelper.getUserInfoByID(userId);
|
||||
//预算金额 start
|
||||
String username = String.valueOf(userInfoByID.get("name"));
|
||||
|
@ -197,7 +212,6 @@ public class BudgetActuRptQueryPlugin extends AbstractReportListDataPlugin {
|
|||
userYearMapData.put(formatYear,d1);
|
||||
}
|
||||
}
|
||||
|
||||
for (Integer year : yearList) {
|
||||
Object [] tempData = new Object [FIELDS.length];
|
||||
tempData[0] = userId;
|
||||
|
@ -363,6 +377,8 @@ public class BudgetActuRptQueryPlugin extends AbstractReportListDataPlugin {
|
|||
countMap.put(year+"b",m);
|
||||
}
|
||||
}
|
||||
//关闭dataset
|
||||
settlementDataSet.close();
|
||||
}
|
||||
if(countMap.isEmpty()){
|
||||
return resultDataSet;
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package zcgj.zcdev.zcdev.fs.plugin.report;
|
||||
|
||||
import kd.bos.entity.datamodel.events.PackageDataEvent;
|
||||
import kd.bos.entity.report.FilterInfo;
|
||||
import kd.bos.entity.report.ReportQueryParam;
|
||||
import kd.bos.report.events.CellStyleRule;
|
||||
import kd.bos.report.plugin.AbstractReportFormPlugin;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
@ -33,6 +35,17 @@ public class FeeDeductionRptListPlugin extends AbstractReportFormPlugin implemen
|
|||
super.packageData(packageDataEvent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean verifyQuery(ReportQueryParam queryParam) {
|
||||
FilterInfo filter = queryParam.getFilter();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (filter.getValue("zcgj_query_org") == null){
|
||||
this.getView().showTipNotification("请选择查询组织!");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCellStyleRules(List<CellStyleRule> cellStyleRules) {
|
||||
|
||||
|
|
Loading…
Reference in New Issue