Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
87a7082151
|
@ -0,0 +1,68 @@
|
||||||
|
package zcgj.zcdev.zcdev.fs.plugin.form;
|
||||||
|
|
||||||
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
|
import kd.bos.form.IClientViewProxy;
|
||||||
|
import kd.bos.form.control.AttachmentPanel;
|
||||||
|
import kd.bos.form.control.events.AttachmentOperaClickListener;
|
||||||
|
import kd.bos.form.events.AfterDoOperationEventArgs;
|
||||||
|
import kd.bos.mvc.form.ClientViewProxy;
|
||||||
|
|
||||||
|
import java.util.EventObject;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class ApplicationfundsPlugin extends AbstractBillPlugIn implements AttachmentOperaClickListener {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerListener(EventObject e) {
|
||||||
|
AttachmentPanel panel = getControl("zcgj_attachmentpanelap");
|
||||||
|
panel.addOperaClickListener(this);;
|
||||||
|
super.registerListener(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterBindData(EventObject e) {
|
||||||
|
setAttFileVisble();//隐藏删除按钮
|
||||||
|
super.afterBindData(e);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
|
||||||
|
setAttFileVisble();
|
||||||
|
super.afterDoOperation(afterDoOperationEventArgs);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void propertyChanged(PropertyChangedArgs e) {
|
||||||
|
if (e.getProperty().getName().equals("zcgj_attachmentcount")) {
|
||||||
|
setAttFileVisble();
|
||||||
|
}
|
||||||
|
super.propertyChanged(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setAttFileVisble() {
|
||||||
|
String billstatus = String.valueOf(this.getModel().getValue("status"));
|
||||||
|
if (!billstatus.equals("A")) {
|
||||||
|
AttachmentPanel attachmentPanel = this.getControl("zcgj_attachmentpanelap");
|
||||||
|
List<Map<String, Object>> attachmentData = attachmentPanel.getAttachmentData();
|
||||||
|
if(attachmentData == null && attachmentData.isEmpty()){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
List<Map<String, Object>> attachmentDatas = attachmentPanel.getAttachmentData();
|
||||||
|
for(Map<String, Object> attachmentMap : attachmentDatas){
|
||||||
|
String visiablePreview = "1";//是否显示预览按钮
|
||||||
|
String visiableDownload = "1";//是否显示下载按钮
|
||||||
|
String visiableRename = "1";//是否显示重命名按钮
|
||||||
|
String visiableDelete = "0";//是否显示删除按钮
|
||||||
|
//visible参数规则为01组成,0代表不可见,1代表可见
|
||||||
|
attachmentMap.put("visible",visiablePreview + visiableDownload + visiableRename+visiableDelete);
|
||||||
|
//attachmentMap.put("hiddenBtn",hiddenBtnList);
|
||||||
|
|
||||||
|
}
|
||||||
|
ClientViewProxy cvp = this.getView().getService(IClientViewProxy.class);
|
||||||
|
cvp.setFieldProperty("zcgj_attachmentpanelap","v",attachmentDatas);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,103 @@
|
||||||
|
package zcgj.zcdev.zcdev.fs.plugin.form;
|
||||||
|
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.utils.StringUtils;
|
||||||
|
import kd.bos.entity.datamodel.IDataModel;
|
||||||
|
import kd.bos.form.IFormView;
|
||||||
|
import kd.bos.form.control.Control;
|
||||||
|
import kd.bos.form.control.events.BeforeClickEvent;
|
||||||
|
import kd.bos.form.control.events.BeforeItemClickEvent;
|
||||||
|
import kd.bos.form.plugin.AbstractFormPlugin;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.ssc.task.formplugin.util.VoucherUtil;
|
||||||
|
|
||||||
|
import java.util.EventObject;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 我的共享,任务审批时增加付款完成校验
|
||||||
|
*/
|
||||||
|
public class TaskApproveFormCkPlugin extends AbstractFormPlugin {
|
||||||
|
|
||||||
|
//
|
||||||
|
public void registerListener(EventObject evt) {
|
||||||
|
this.addClickListeners(new String[]{"submit", "submitandnext"});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeItemClick(BeforeItemClickEvent evt) {
|
||||||
|
super.beforeItemClick(evt);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeClick(BeforeClickEvent evt) {
|
||||||
|
super.beforeClick(evt);
|
||||||
|
Control control = (Control)evt.getSource();
|
||||||
|
String fieldKey = control.getKey();
|
||||||
|
if (StringUtils.equals(fieldKey, "submit")
|
||||||
|
|| StringUtils.equals(fieldKey, "submitandnext")) {
|
||||||
|
IFormView view = this.getView();
|
||||||
|
Map<String, Object> customParams = view.getFormShowParameter().getCustomParams();
|
||||||
|
Long billtypeid = 0L;
|
||||||
|
Long tasktypeid = 0L;
|
||||||
|
Long sscid = 0L;
|
||||||
|
String billnumber = "";
|
||||||
|
String billid = "";
|
||||||
|
String billNo = null;
|
||||||
|
if (customParams != null) {
|
||||||
|
billtypeid = (Long)customParams.get("billtypeid");//单据类型id
|
||||||
|
tasktypeid = (Long)customParams.get("tasktypeid");//任务类型id
|
||||||
|
sscid = (Long)customParams.get("sscid");//任务类型id
|
||||||
|
billnumber = (String)customParams.get("billnumber");//单据编码(单据标识 entityName)
|
||||||
|
billid = (String)customParams.get("billid");//业务单据id
|
||||||
|
billNo = VoucherUtil.getTaskBillNo(billid);//业务单据编号
|
||||||
|
|
||||||
|
IDataModel model = this.getModel();
|
||||||
|
String operation = (String)model.getValue("operationgroupfield");
|
||||||
|
if ("1".equals(operation)) { //如果审批操作是通过
|
||||||
|
QFilter tasktypeFilter = new QFilter("orgfield.id", QCP.equals,sscid);
|
||||||
|
tasktypeFilter.and(new QFilter("tasklevel", QCP.equals,"2"));//任务类型为:结算时
|
||||||
|
DynamicObject[] tasktypeArray = BusinessDataServiceHelper.load("task_tasktype", "id", new QFilter[]{tasktypeFilter});
|
||||||
|
if(tasktypeArray != null && tasktypeArray.length > 0){
|
||||||
|
DynamicObject tasktype = tasktypeArray[0];
|
||||||
|
if(tasktypeid.getLong("id") == tasktype.getLong("id")) {
|
||||||
|
if(StringUtils.isNotBlank(billNo) && StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(billnumber) ) {
|
||||||
|
QFilter accountTableFilter = new QFilter("id", QCP.equals,Long.valueOf(billid));
|
||||||
|
DynamicObject sourceBillObject = BusinessDataServiceHelper.loadSingle(billnumber, new QFilter[]{accountTableFilter});
|
||||||
|
String billstatus = sourceBillObject.getString("billstatus");
|
||||||
|
if(!"G".equals(billstatus)) {
|
||||||
|
if("er_repaymentbill".equals(billnumber)) {
|
||||||
|
this.getView().showErrorNotification(String.format("审批结算任务:当前单据的收款未完成,请完成收款后提交。"));
|
||||||
|
evt.setCancel(true);
|
||||||
|
}else if(
|
||||||
|
"er_dailyreimbursebill".equals(billnumber) || //费用报销单
|
||||||
|
"er_publicreimbursebill".equals(billnumber) || //对公报销的呢
|
||||||
|
"er_tripreimbursebill".equals(billnumber) || //差旅报销单
|
||||||
|
"er_dailyloanbill".equals(billnumber) || //借款单
|
||||||
|
"er_prepaybill".equals(billnumber) || //预付单
|
||||||
|
"er_applypaybill".equals(billnumber) || //付款申请单
|
||||||
|
"cas_paybill".equals(billnumber) //付款处理单
|
||||||
|
){
|
||||||
|
this.getView().showErrorNotification(String.format("审批结算任务:当前单据的付款未完成,请完成付款后提交。"));
|
||||||
|
evt.setCancel(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//System.out.println(billtypeid);
|
||||||
|
//System.out.println(tasktypeid);
|
||||||
|
//System.out.println(billnumber);
|
||||||
|
//System.out.println(billid);
|
||||||
|
//System.out.println(billNo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -69,7 +69,7 @@ public class TaskListPayStatusCkOp extends AbstractOperationServicePlugIn {
|
||||||
DynamicObject tasktypeid = dataEntity.getDynamicObject("tasktypeid");
|
DynamicObject tasktypeid = dataEntity.getDynamicObject("tasktypeid");
|
||||||
DynamicObject sscid = dataEntity.getDynamicObject("sscid");
|
DynamicObject sscid = dataEntity.getDynamicObject("sscid");
|
||||||
QFilter tasktypeFilter = new QFilter("orgfield.id", QCP.equals,sscid.getLong("id"));
|
QFilter tasktypeFilter = new QFilter("orgfield.id", QCP.equals,sscid.getLong("id"));
|
||||||
tasktypeFilter.and(new QFilter("tasklevel", QCP.equals,"2"));
|
tasktypeFilter.and(new QFilter("tasklevel", QCP.equals,"2"));//任务类型为:结算时
|
||||||
DynamicObject[] tasktypeArray = BusinessDataServiceHelper.load("task_tasktype", "id", new QFilter[]{tasktypeFilter});
|
DynamicObject[] tasktypeArray = BusinessDataServiceHelper.load("task_tasktype", "id", new QFilter[]{tasktypeFilter});
|
||||||
if(tasktypeArray != null && tasktypeArray.length > 0){
|
if(tasktypeArray != null && tasktypeArray.length > 0){
|
||||||
DynamicObject tasktype = tasktypeArray[0];
|
DynamicObject tasktype = tasktypeArray[0];
|
||||||
|
@ -84,7 +84,15 @@ public class TaskListPayStatusCkOp extends AbstractOperationServicePlugIn {
|
||||||
if(!"G".equals(billstatus)) {
|
if(!"G".equals(billstatus)) {
|
||||||
if("er_repaymentbill".equals(entityName)) {
|
if("er_repaymentbill".equals(entityName)) {
|
||||||
this.addFatalErrorMessage(extendedDataEntity, String.format("审批结算任务:【%s-%s】的收款未完成,请完成收款后操作。",billnumber,subject));
|
this.addFatalErrorMessage(extendedDataEntity, String.format("审批结算任务:【%s-%s】的收款未完成,请完成收款后操作。",billnumber,subject));
|
||||||
}else{
|
}else if(
|
||||||
|
"er_dailyreimbursebill".equals(entityName) || //费用报销单
|
||||||
|
"er_publicreimbursebill".equals(entityName) || //对公报销的呢
|
||||||
|
"er_tripreimbursebill".equals(entityName) || //差旅报销单
|
||||||
|
"er_dailyloanbill".equals(entityName) || //借款单
|
||||||
|
"er_prepaybill".equals(entityName) || //预付单
|
||||||
|
"er_applypaybill".equals(entityName) || //付款申请单
|
||||||
|
"cas_paybill".equals(entityName) //付款处理单
|
||||||
|
) {
|
||||||
this.addFatalErrorMessage(extendedDataEntity, String.format("审批结算任务:【%s-%s】的付款未完成,请完成付款后操作。",billnumber,subject));
|
this.addFatalErrorMessage(extendedDataEntity, String.format("审批结算任务:【%s-%s】的付款未完成,请完成付款后操作。",billnumber,subject));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,4 +47,24 @@ public class OrgCheckUtils {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断某个组织是否在某个组织下面
|
||||||
|
* parentOrgNumber 上层组织编码
|
||||||
|
* currentOrgId 需要判断的组织id
|
||||||
|
*/
|
||||||
|
public static boolean isChildrenOrg(String parentOrgNumber,Long currentOrgId){
|
||||||
|
QFilter filterOrgId = new QFilter("number", QCP.equals,parentOrgNumber);//中材矿山建设有限公司
|
||||||
|
DynamicObject adminOrg = BusinessDataServiceHelper.loadSingle("bos_org", "number,name,fullname", new QFilter[]{filterOrgId});
|
||||||
|
long orgId = adminOrg.getLong("id");
|
||||||
|
List<Long> orgIds = new ArrayList<>(1);
|
||||||
|
//orgIds.add(1692204547985902592L);
|
||||||
|
orgIds.add(orgId);
|
||||||
|
List<Long> subOrgIds = OrgUnitServiceHelper.getAllSubordinateOrgs(1L, orgIds, true);
|
||||||
|
Set<Long> orgSer = subOrgIds.stream().collect(Collectors.toSet());
|
||||||
|
if(orgSer.contains(currentOrgId)){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ public class ContractProcessRevisionFilterPlugin extends AbstractBillPlugIn impl
|
||||||
if(projectObj!=null){
|
if(projectObj!=null){
|
||||||
DynamicObject projectInfo = (DynamicObject)projectObj;
|
DynamicObject projectInfo = (DynamicObject)projectObj;
|
||||||
QFilter qFilter = new QFilter("project.id", QCP.equals, projectInfo.getLong("id"));
|
QFilter qFilter = new QFilter("project.id", QCP.equals, projectInfo.getLong("id"));
|
||||||
QFilter treeFilter = new QFilter("number", QCP.equals, projectInfo.getString("number"));
|
QFilter treeFilter = new QFilter("project.number", QCP.equals, projectInfo.getString("number"));
|
||||||
ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
||||||
showParameter.getListFilterParameter().getQFilters().add(qFilter);
|
showParameter.getListFilterParameter().getQFilters().add(qFilter);
|
||||||
showParameter.getTreeFilterParameter().getQFilters().add(treeFilter);
|
showParameter.getTreeFilterParameter().getQFilters().add(treeFilter);
|
||||||
|
|
|
@ -61,13 +61,19 @@ public class InContractFinaceConfirmeListPlugin extends AbstractListPlugin imple
|
||||||
@Override
|
@Override
|
||||||
public void filterContainerBeforeF7Select(BeforeFilterF7SelectEvent args) {
|
public void filterContainerBeforeF7Select(BeforeFilterF7SelectEvent args) {
|
||||||
super.filterContainerBeforeF7Select(args);
|
super.filterContainerBeforeF7Select(args);
|
||||||
//获取当前人员有权限的组织
|
long userId = Long.parseLong(RequestContext.get().getUserId());
|
||||||
HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(Long.parseLong(RequestContext.get().getUserId()));
|
boolean superUser = PermissionServiceHelper.isSuperUser(userId); //判断是否为全功能用户
|
||||||
//有权的组织
|
boolean adminUser = PermissionServiceHelper.isAdminUser(userId); //判断是否管理员用户
|
||||||
List<Long> hasPermOrgs = userHasPermOrgs.getHasPermOrgs();
|
if(!superUser && !adminUser){
|
||||||
String fieldName = args.getFieldName();
|
//获取当前人员有权限的组织
|
||||||
if ("zcgj_org.id".equals(fieldName)) {
|
//HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(userId);
|
||||||
args.getQfilters().add(new QFilter("id", QCP.in, hasPermOrgs));
|
HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(userId,true);
|
||||||
|
//有权的组织
|
||||||
|
List<Long> hasPermOrgs = userHasPermOrgs.getHasPermOrgs();
|
||||||
|
String fieldName = args.getFieldName();
|
||||||
|
if ("zcgj_org.id".equals(fieldName)) {
|
||||||
|
args.getQfilters().add(new QFilter("id", QCP.in, hasPermOrgs));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -72,13 +72,18 @@ public class OutContractFinaceConfirmeListPlugin extends AbstractListPlugin impl
|
||||||
@Override
|
@Override
|
||||||
public void filterContainerBeforeF7Select(BeforeFilterF7SelectEvent args) {
|
public void filterContainerBeforeF7Select(BeforeFilterF7SelectEvent args) {
|
||||||
super.filterContainerBeforeF7Select(args);
|
super.filterContainerBeforeF7Select(args);
|
||||||
//获取当前人员有权限的组织
|
long userId = Long.parseLong(RequestContext.get().getUserId());
|
||||||
HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(Long.parseLong(RequestContext.get().getUserId()));
|
boolean superUser = PermissionServiceHelper.isSuperUser(userId); //判断是否为全功能用户
|
||||||
//有权的组织
|
boolean adminUser = PermissionServiceHelper.isAdminUser(userId); //判断是否管理员用户
|
||||||
List<Long> hasPermOrgs = userHasPermOrgs.getHasPermOrgs();
|
if(!superUser && !adminUser) {
|
||||||
String fieldName = args.getFieldName();
|
//获取当前人员有权限的组织
|
||||||
if ("zcgj_org.id".equals(fieldName)) {
|
HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(Long.parseLong(RequestContext.get().getUserId()));
|
||||||
args.getQfilters().add(new QFilter("id", QCP.in, hasPermOrgs));
|
//有权的组织
|
||||||
|
List<Long> hasPermOrgs = userHasPermOrgs.getHasPermOrgs();
|
||||||
|
String fieldName = args.getFieldName();
|
||||||
|
if ("zcgj_org.id".equals(fieldName)) {
|
||||||
|
args.getQfilters().add(new QFilter("id", QCP.in, hasPermOrgs));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,10 @@ import kd.bos.form.ShowType;
|
||||||
import kd.bos.form.control.EntryGrid;
|
import kd.bos.form.control.EntryGrid;
|
||||||
import kd.bos.form.events.HyperLinkClickEvent;
|
import kd.bos.form.events.HyperLinkClickEvent;
|
||||||
import kd.bos.form.events.HyperLinkClickListener;
|
import kd.bos.form.events.HyperLinkClickListener;
|
||||||
|
import kd.bos.form.field.BasedataEdit;
|
||||||
|
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||||
|
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||||
|
import kd.bos.list.ListShowParameter;
|
||||||
import kd.bos.orm.query.QCP;
|
import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
@ -31,7 +35,7 @@ import java.util.List;
|
||||||
/**
|
/**
|
||||||
* 支出合同确认单插件
|
* 支出合同确认单插件
|
||||||
*/
|
*/
|
||||||
public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn implements Plugin, HyperLinkClickListener {
|
public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn implements Plugin, HyperLinkClickListener, BeforeF7SelectListener {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -108,6 +112,23 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
||||||
if(newValue!=null){
|
if(newValue!=null){
|
||||||
initData(newValue.getLong("id"));
|
initData(newValue.getLong("id"));
|
||||||
}
|
}
|
||||||
|
}else if(StringUtils.equals(name, "zcgj_expenseitem")){ //费用项目发生改变时,清空科目分类
|
||||||
|
int rowIndex = changeData.getRowIndex();
|
||||||
|
DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_expenseitementry");
|
||||||
|
if(dynamicObjectCollection!=null){
|
||||||
|
DynamicObject zcgjExpenseitem = dynamicObjectCollection.get(rowIndex).getDynamicObject("zcgj_expenseitem");
|
||||||
|
QFilter filter = new QFilter("zcgj_entryentity.zcgj_fee",QCP.equals,zcgjExpenseitem.getLong("id"));
|
||||||
|
//分录过滤
|
||||||
|
//使用BusinessDataServiceHelper.load查出来的数据,返回的是符合条件的整单,即使只有分录中的某一行符合条件,也会返回整张单包括其他分录行的数据
|
||||||
|
//使用 QueryServiceHelper.query查出来的数据只会包含符合条件的分录行,不含其他行数据
|
||||||
|
DynamicObjectCollection accountfeeEntries = QueryServiceHelper.query("zcgj_accountfee", "zcgj_entryentity.zcgj_accounttype", new QFilter[]{filter});
|
||||||
|
if(accountfeeEntries!=null && accountfeeEntries.size()==1){
|
||||||
|
long id = accountfeeEntries.get(0).getLong("zcgj_entryentity.zcgj_accounttype");
|
||||||
|
this.getModel().setValue("zcgj_accounttype",id,rowIndex);
|
||||||
|
}else{
|
||||||
|
this.getModel().setValue("zcgj_accounttype",null,rowIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -148,6 +169,16 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
||||||
super.registerListener(e);
|
super.registerListener(e);
|
||||||
EntryGrid control = this.getControl("zcgj_entryentity");
|
EntryGrid control = this.getControl("zcgj_entryentity");
|
||||||
control.addHyperClickListener(this);
|
control.addHyperClickListener(this);
|
||||||
|
|
||||||
|
BasedataEdit contractprocess = this.getControl("zcgj_cbs"); //承包工序
|
||||||
|
if(contractprocess != null) {
|
||||||
|
contractprocess.addBeforeF7SelectListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
BasedataEdit accounttype = this.getControl("zcgj_accounttype"); //科目分类
|
||||||
|
if(accounttype != null) {
|
||||||
|
accounttype.addBeforeF7SelectListener(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -219,4 +250,58 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme
|
||||||
}
|
}
|
||||||
return BigDecimal.ZERO;
|
return BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
||||||
|
String name = beforeF7SelectEvent.getProperty().getName();
|
||||||
|
if(name.equals("zcgj_cbs")) {//工序根据项目过滤
|
||||||
|
Object projectObj = this.getModel().getValue("zcgj_project");
|
||||||
|
if(projectObj instanceof DynamicObject){
|
||||||
|
DynamicObject project = (DynamicObject) projectObj;
|
||||||
|
QFilter qFilter = new QFilter("project.id", QCP.equals, project.getLong("id"));
|
||||||
|
QFilter treeFilter = new QFilter("project.number", QCP.equals, project.getString("number"));
|
||||||
|
ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
||||||
|
showParameter.getListFilterParameter().getQFilters().add(qFilter);
|
||||||
|
showParameter.getTreeFilterParameter().getQFilters().add(treeFilter);
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(name.equals("zcgj_accounttype")){ //科目分类根据科目分类基础资料过滤
|
||||||
|
int row = beforeF7SelectEvent.getRow();
|
||||||
|
DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_expenseitementry");
|
||||||
|
if(dynamicObjectCollection!=null){
|
||||||
|
DynamicObject zcgjExpenseitem = dynamicObjectCollection.get(row).getDynamicObject("zcgj_expenseitem");
|
||||||
|
if(zcgjExpenseitem!=null){
|
||||||
|
QFilter filter = new QFilter("zcgj_entryentity.zcgj_fee",QCP.equals,zcgjExpenseitem.getLong("id"));
|
||||||
|
//分录过滤
|
||||||
|
//使用BusinessDataServiceHelper.load查出来的数据,返回的是符合条件的整单,即使只有分录中的某一行符合条件,也会返回整张单包括其他分录行的数据
|
||||||
|
//使用 QueryServiceHelper.query查出来的数据只会包含符合条件的分录行,不含其他行数据
|
||||||
|
DynamicObjectCollection accountfeeEntries = QueryServiceHelper.query("zcgj_accountfee", "zcgj_entryentity.zcgj_accounttype.number", new QFilter[]{filter});
|
||||||
|
List<String> numbers = new ArrayList<>();
|
||||||
|
if(accountfeeEntries!=null){
|
||||||
|
for (DynamicObject dynamicObject : accountfeeEntries) {
|
||||||
|
String zcgjAccounttypeNumber = dynamicObject.getString("zcgj_entryentity.zcgj_accounttype.number");
|
||||||
|
if(zcgjAccounttypeNumber!=null){
|
||||||
|
numbers.add(zcgjAccounttypeNumber);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QFilter qFilter = new QFilter("number", QCP.in, numbers);
|
||||||
|
QFilter treeFilter = new QFilter("number", QCP.in, numbers);
|
||||||
|
ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
||||||
|
showParameter.getListFilterParameter().getQFilters().add(qFilter);
|
||||||
|
}else{
|
||||||
|
this.getView().showErrorNotification("请选择费用项目!");
|
||||||
|
beforeF7SelectEvent.setCancel(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
package zcgj.zcdev.zcdev.pr.plugin.form;
|
||||||
|
|
||||||
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
|
import kd.bos.bill.BillShowParameter;
|
||||||
|
import kd.bos.bill.OperationStatus;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.entity.datamodel.events.ChangeData;
|
||||||
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
|
import kd.bos.servicehelper.user.UserServiceHelper;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.util.EventObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1:付款申请单通用插件
|
||||||
|
*/
|
||||||
|
public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plugin {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterBindData(EventObject e) {
|
||||||
|
super.afterBindData(e);
|
||||||
|
//如果是新增时
|
||||||
|
BillShowParameter bsp=(BillShowParameter)this.getView().getFormShowParameter();
|
||||||
|
if(bsp.getStatus()== OperationStatus.ADDNEW ){
|
||||||
|
DynamicObject person = this.getModel().getDataEntity().getDynamicObject("person");
|
||||||
|
if(person!=null){
|
||||||
|
long mainOrgId = UserServiceHelper.getUserMainOrgId(person.getLong("id"));
|
||||||
|
this.getModel().setValue("zcgj_persondepart", mainOrgId);
|
||||||
|
this.getView().updateView("zcgj_persondepart");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void propertyChanged(PropertyChangedArgs e) {
|
||||||
|
super.propertyChanged(e);
|
||||||
|
String name = e.getProperty().getName();
|
||||||
|
if("person".equals(name)){
|
||||||
|
ChangeData changeData = e.getChangeSet()[0];//获取改变的数据
|
||||||
|
DynamicObject oldValue = (DynamicObject) changeData.getOldValue();
|
||||||
|
DynamicObject newValue = (DynamicObject) changeData.getNewValue();
|
||||||
|
if(newValue !=null){
|
||||||
|
long userid = newValue.getLong("id");
|
||||||
|
long mainOrgId = UserServiceHelper.getUserMainOrgId(userid);
|
||||||
|
this.getModel().setValue("zcgj_persondepart", mainOrgId);
|
||||||
|
this.getView().updateView("zcgj_persondepart");
|
||||||
|
}else{
|
||||||
|
this.getView().showErrorNotification("申请人不能为空");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -69,7 +69,7 @@ public class PaymentRegisterFundOpExt extends PaymentRegisterFundOp {
|
||||||
DynamicObject paybill = BusinessDataServiceHelper.loadSingle("cas_paybill", "entry,entry.e_corebillentryseq", new QFilter[]{paybillFilter});
|
DynamicObject paybill = BusinessDataServiceHelper.loadSingle("cas_paybill", "entry,entry.e_corebillentryseq", new QFilter[]{paybillFilter});
|
||||||
Set<Integer> payBillSer = new HashSet<>();
|
Set<Integer> payBillSer = new HashSet<>();
|
||||||
if(paybill!=null){
|
if(paybill!=null){
|
||||||
for (DynamicObject dynamicObject : paybill.getDynamicObjectCollection("entry")) {
|
for (DynamicObject dynamicObject : paybill.getDynamicObjectCollection("entry")) {//付款处理单-付款明细分录
|
||||||
int corebillentryseq = dynamicObject.getInt("e_corebillentryseq");//核心单据行号
|
int corebillentryseq = dynamicObject.getInt("e_corebillentryseq");//核心单据行号
|
||||||
payBillSer.add(corebillentryseq);
|
payBillSer.add(corebillentryseq);
|
||||||
log.info("执行PaymentRegisterFundOpExt:付款处理单涉及核心单据行号:"+corebillentryseq);
|
log.info("执行PaymentRegisterFundOpExt:付款处理单涉及核心单据行号:"+corebillentryseq);
|
||||||
|
@ -109,20 +109,6 @@ public class PaymentRegisterFundOpExt extends PaymentRegisterFundOp {
|
||||||
} else {
|
} else {
|
||||||
paymentEntry.set("completepay", false);
|
paymentEntry.set("completepay", false);
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}else if (StringUtils.equals(payType, applyPayType) && payBillSer.contains(seq)){
|
|
||||||
BigDecimal oldRealPayAmt = paymentEntry.getBigDecimal("thisrealpayamt");
|
|
||||||
BigDecimal applyOfTaxAmount = paymentEntry.getBigDecimal("applyoftaxamount");
|
|
||||||
BigDecimal thisRealPayAmt = oldRealPayAmt.add(thisOfTaxAmt);
|
|
||||||
BigDecimal thisWaitPayAmt = applyOfTaxAmount.subtract(thisRealPayAmt);
|
|
||||||
paymentEntry.set("thisrealpayamt", thisRealPayAmt);
|
|
||||||
paymentEntry.set("thiswaitpayamt", thisWaitPayAmt);
|
|
||||||
if (thisRealPayAmt.compareTo(applyOfTaxAmount) >= 0) {
|
|
||||||
paymentEntry.set("completepay", true);
|
|
||||||
} else {
|
|
||||||
paymentEntry.set("completepay", false);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,7 @@ public class InContractSettleFiConfirmWorkFlowPlugin implements IWorkflowPlugin
|
||||||
inFinaceconfirm.set("zcgj_invoice_org",inContractSettle.getDynamicObject("project").getDynamicObject("projectorg"));
|
inFinaceconfirm.set("zcgj_invoice_org",inContractSettle.getDynamicObject("project").getDynamicObject("projectorg"));
|
||||||
// getModel().setValue("zcgj_jscustomer",ecincontractsettle.getDynamicObject("zcgj_jscustomer"));
|
// getModel().setValue("zcgj_jscustomer",ecincontractsettle.getDynamicObject("zcgj_jscustomer"));
|
||||||
inFinaceconfirm.set("billstatus","A");
|
inFinaceconfirm.set("billstatus","A");
|
||||||
|
inFinaceconfirm.set("creator",inContractSettle.getDynamicObject("creator"));
|
||||||
|
|
||||||
DynamicObjectCollection itementry = inContractSettle.getDynamicObjectCollection("itementry");
|
DynamicObjectCollection itementry = inContractSettle.getDynamicObjectCollection("itementry");
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,7 @@ public class InContractSettleInvalidWorkFlowPlugin implements IWorkflowPlugin {
|
||||||
// getModel().setValue("zcgj_jscustomer",ecincontractsettle.getDynamicObject("zcgj_jscustomer"));
|
// getModel().setValue("zcgj_jscustomer",ecincontractsettle.getDynamicObject("zcgj_jscustomer"));
|
||||||
inFinaceconfirm.set("billstatus","C");
|
inFinaceconfirm.set("billstatus","C");
|
||||||
inFinaceconfirm.set("zcgj_is_invalid",true);
|
inFinaceconfirm.set("zcgj_is_invalid",true);
|
||||||
|
inFinaceconfirm.set("creator",inContractSettle.getDynamicObject("creator"));
|
||||||
|
|
||||||
DynamicObjectCollection itementry = inContractSettle.getDynamicObjectCollection("itementry");
|
DynamicObjectCollection itementry = inContractSettle.getDynamicObjectCollection("itementry");
|
||||||
|
|
||||||
|
|
|
@ -50,6 +50,7 @@ public class OutContractSettleFiConfirmWorkFlowPlugin implements IWorkflowPlugin
|
||||||
outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer"));
|
outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer"));
|
||||||
outFinaceconfirm.set("billstatus","A");
|
outFinaceconfirm.set("billstatus","A");
|
||||||
outFinaceconfirm.set("zcgj_is_reversabillid",true);
|
outFinaceconfirm.set("zcgj_is_reversabillid",true);
|
||||||
|
outFinaceconfirm.set("creator",outContractSettle.getDynamicObject("creator"));
|
||||||
DynamicObjectCollection itementry = outContractSettle.getDynamicObjectCollection("itementry");
|
DynamicObjectCollection itementry = outContractSettle.getDynamicObjectCollection("itementry");
|
||||||
|
|
||||||
DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry");
|
DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry");
|
||||||
|
|
|
@ -51,6 +51,7 @@ public class OutContractSettleInvalidWorkFlowPlugin implements IWorkflowPlugin {
|
||||||
outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer"));
|
outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer"));
|
||||||
outFinaceconfirm.set("billstatus","C");
|
outFinaceconfirm.set("billstatus","C");
|
||||||
outFinaceconfirm.set("zcgj_is_invalid",true);
|
outFinaceconfirm.set("zcgj_is_invalid",true);
|
||||||
|
outFinaceconfirm.set("creator",outContractSettle.getDynamicObject("creator"));
|
||||||
|
|
||||||
DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry");
|
DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry");
|
||||||
entryEntity1.clear();
|
entryEntity1.clear();
|
||||||
|
|
|
@ -55,6 +55,7 @@ public class OutContractSettleReversalWorkFlowPlugin implements IWorkflowPlugin
|
||||||
inContractSettle.set("isonlist", outContractSettle.getBoolean("isonlist"));
|
inContractSettle.set("isonlist", outContractSettle.getBoolean("isonlist"));
|
||||||
inContractSettle.set("conttotaloftaxamount", outContractSettle.getBoolean("conttotaloftaxamount"));
|
inContractSettle.set("conttotaloftaxamount", outContractSettle.getBoolean("conttotaloftaxamount"));
|
||||||
inContractSettle.set("zcgj_is_reversabillid", true);
|
inContractSettle.set("zcgj_is_reversabillid", true);
|
||||||
|
inContractSettle.set("creator", outContractSettle.getDynamicObject("creator"));
|
||||||
|
|
||||||
DynamicObject payitem = BusinessDataServiceHelper.loadSingle("ec_payitem", new QFilter[]{new QFilter("number", QCP.equals,"HTCX")});
|
DynamicObject payitem = BusinessDataServiceHelper.loadSingle("ec_payitem", new QFilter[]{new QFilter("number", QCP.equals,"HTCX")});
|
||||||
|
|
||||||
|
@ -109,6 +110,8 @@ public class OutContractSettleReversalWorkFlowPlugin implements IWorkflowPlugin
|
||||||
outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer"));
|
outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer"));
|
||||||
outFinaceconfirm.set("billstatus","C");
|
outFinaceconfirm.set("billstatus","C");
|
||||||
outFinaceconfirm.set("zcgj_is_reversabillid",true);
|
outFinaceconfirm.set("zcgj_is_reversabillid",true);
|
||||||
|
outFinaceconfirm.set("creator",outContractSettle.getDynamicObject("creator"));
|
||||||
|
outFinaceconfirm.set("zcgj_org",outContractSettle.getDynamicObject("org"));
|
||||||
|
|
||||||
DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry");
|
DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry");
|
||||||
entryEntity1.clear();
|
entryEntity1.clear();
|
||||||
|
|
Loading…
Reference in New Issue