parent
140bd6e3ac
commit
b841584609
|
@ -2,6 +2,7 @@ package zcgj.zcdev.zcdev.pr.plugin.form;
|
||||||
|
|
||||||
import kd.bos.bill.AbstractBillPlugIn;
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.entity.datamodel.IDataModel;
|
||||||
import kd.bos.entity.datamodel.events.ChangeData;
|
import kd.bos.entity.datamodel.events.ChangeData;
|
||||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
import kd.sdk.plugin.Plugin;
|
import kd.sdk.plugin.Plugin;
|
||||||
|
@ -17,7 +18,6 @@ public class EcContractFromPlugin extends AbstractBillPlugIn implements Plugin {
|
||||||
@Override
|
@Override
|
||||||
public void afterCreateNewData(EventObject e) {
|
public void afterCreateNewData(EventObject e) {
|
||||||
super.afterCreateNewData(e);
|
super.afterCreateNewData(e);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -25,7 +25,20 @@ public class EcContractFromPlugin extends AbstractBillPlugIn implements Plugin {
|
||||||
super.propertyChanged(e);
|
super.propertyChanged(e);
|
||||||
String name = e.getProperty().getName();
|
String name = e.getProperty().getName();
|
||||||
ChangeData changeData = e.getChangeSet()[0];
|
ChangeData changeData = e.getChangeSet()[0];
|
||||||
|
if (name.equals("contracttype")){
|
||||||
|
Object contracttype = this.getModel().getValue("contracttype");
|
||||||
|
if (contracttype!=null){
|
||||||
|
DynamicObject type = (DynamicObject) contracttype;
|
||||||
|
String number = type.getString("number");
|
||||||
|
if (number.equals("sbzssr")){
|
||||||
|
this.getView().setVisible(true,"zcgj_equipment");
|
||||||
|
this.getView().setVisible(false,"zcgj_administer");
|
||||||
|
} else if (number.equals("hfzl")) {
|
||||||
|
this.getView().setVisible(true,"zcgj_administer");
|
||||||
|
this.getView().setVisible(false,"zcgj_equipment");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Object taxrate = this.getModel().getValue("taxrate");
|
Object taxrate = this.getModel().getValue("taxrate");
|
||||||
if (taxrate != null) {
|
if (taxrate != null) {
|
||||||
DynamicObject taxrateInfo = (DynamicObject) taxrate;
|
DynamicObject taxrateInfo = (DynamicObject) taxrate;
|
||||||
|
|
|
@ -4,6 +4,7 @@ import kd.bos.bill.AbstractBillPlugIn;
|
||||||
import kd.bos.context.RequestContext;
|
import kd.bos.context.RequestContext;
|
||||||
import kd.bos.dataentity.entity.DynamicObject;
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
import kd.bos.form.field.BasedataEdit;
|
import kd.bos.form.field.BasedataEdit;
|
||||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||||
|
@ -13,8 +14,10 @@ import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
import kd.bos.servicehelper.user.UserServiceHelper;
|
import kd.bos.servicehelper.user.UserServiceHelper;
|
||||||
import kd.sdk.plugin.Plugin;
|
import kd.sdk.plugin.Plugin;
|
||||||
|
import zcgj.zcdev.zcdev.pr.plugin.utils.PluginUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.EventObject;
|
import java.util.EventObject;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -54,4 +57,25 @@ public class EcInFinalsettleJusCustPlugin extends AbstractBillPlugIn implements
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void propertyChanged(PropertyChangedArgs e) {
|
||||||
|
super.propertyChanged(e);
|
||||||
|
String name = e.getProperty().getName();
|
||||||
|
if (name.equals("contract")){
|
||||||
|
Object objcontract = this.getModel().getValue("contract");
|
||||||
|
if (objcontract!=null){
|
||||||
|
DynamicObject contract = (DynamicObject) objcontract;
|
||||||
|
DynamicObject contractInfo = BusinessDataServiceHelper.loadSingle("ec_in_contract", "id,billno,billname,zcgj_renewal,zcgj_isrenewal,zcgj_enddate", new QFilter[]{new QFilter("id", QCP.equals, contract.getLong("id"))});
|
||||||
|
Date zcgjEnddate = contractInfo.getDate("zcgj_enddate");
|
||||||
|
Date nowdate = new Date();
|
||||||
|
int timeDays = PluginUtils.getTimeDays(zcgjEnddate, nowdate);
|
||||||
|
// int endDays = Integer.parseInt(System.getProperty("endDays"));
|
||||||
|
int endDays = 100;
|
||||||
|
if (timeDays-endDays<=0){
|
||||||
|
this.getView().showTipNotification("当前选择合同距离到期不足"+endDays+"天!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
package zcgj.zcdev.zcdev.pr.plugin.form;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import kd.bos.bill.BillShowParameter;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType;
|
||||||
|
import kd.bos.entity.datamodel.events.BizDataEventArgs;
|
||||||
|
import kd.bos.form.FormShowParameter;
|
||||||
|
import kd.bos.form.ShowType;
|
||||||
|
import kd.bos.form.control.EntryGrid;
|
||||||
|
import kd.bos.form.control.events.CellClickEvent;
|
||||||
|
import kd.bos.form.control.events.CellClickListener;
|
||||||
|
import kd.bos.form.plugin.AbstractFormPlugin;
|
||||||
|
import kd.bos.list.plugin.AbstractListPlugin;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
|
||||||
|
import java.util.EventObject;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class QueryInstancesFromPlugin extends AbstractFormPlugin implements CellClickListener {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterCreateNewData(EventObject e) {
|
||||||
|
super.afterCreateNewData(e);
|
||||||
|
Map<String, Object> customParams = this.getView().getFormShowParameter().getCustomParams();
|
||||||
|
Object list = customParams.get("list");
|
||||||
|
if (list!=null){
|
||||||
|
JSONArray jsonArray = JSONArray.parseArray(list.toString());
|
||||||
|
DynamicObjectCollection entrys = (DynamicObjectCollection)getModel().getValue("zcgj_entryentity");
|
||||||
|
entrys.remove(0);
|
||||||
|
for (int i = 0; i < jsonArray.size(); i++) {
|
||||||
|
DynamicObjectType type = entrys.getDynamicObjectType();
|
||||||
|
DynamicObject entry = new DynamicObject(type);
|
||||||
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||||
|
entry.set("zcgj_billno",jsonObject.getString("zcgj_billno"));
|
||||||
|
entry.set("zcgj_billname",jsonObject.getString("zcgj_billname"));
|
||||||
|
entry.set("zcgj_renewalnum",jsonObject.getString("zcgj_renewalnum"));
|
||||||
|
entry.set("zcgj_renewalname",jsonObject.getString("zcgj_renewalname"));
|
||||||
|
entrys.add(entry);
|
||||||
|
this.getModel().setValue("zcgj_billno",jsonObject.getString("zcgj_billno"),i);
|
||||||
|
this.getModel().setValue("zcgj_billname",jsonObject.getString("zcgj_billname"),i);
|
||||||
|
this.getModel().setValue("zcgj_renewalnum",jsonObject.getString("zcgj_renewalnum"),i);
|
||||||
|
this.getModel().setValue("zcgj_renewalname",jsonObject.getString("zcgj_renewalname"),i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void registerListener(EventObject e) {
|
||||||
|
super.registerListener(e);
|
||||||
|
EntryGrid control = (EntryGrid)getView().getControl("zcgj_entryentity");
|
||||||
|
control.addCellClickListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cellClick(CellClickEvent cellClickEvent) {
|
||||||
|
String fieldKey = cellClickEvent.getFieldKey();
|
||||||
|
if (!fieldKey.equals("0")) {
|
||||||
|
int row = cellClickEvent.getRow();
|
||||||
|
if (fieldKey.equals("zcgj_billno")){
|
||||||
|
Object number = getModel().getValue("zcgj_billno", row);
|
||||||
|
if (number!=null){
|
||||||
|
DynamicObject contract = BusinessDataServiceHelper.loadSingle("ec_in_contract", "id,billno,zcgj_renewal,zcgj_isrenewal", new QFilter[]{new QFilter("billno", QCP.equals, number.toString())});
|
||||||
|
BillShowParameter formShowParameter = new BillShowParameter();
|
||||||
|
formShowParameter.setFormId("ec_in_contract");
|
||||||
|
formShowParameter.setPkId(contract.getLong("id"));
|
||||||
|
formShowParameter.getOpenStyle().setShowType(ShowType.Modal);
|
||||||
|
getView().showForm(formShowParameter);
|
||||||
|
}
|
||||||
|
} else if (fieldKey.equals("zcgj_renewalnum")) {
|
||||||
|
Object number = getModel().getValue("zcgj_renewalnum", row);
|
||||||
|
if (number!=null){
|
||||||
|
DynamicObject contract = BusinessDataServiceHelper.loadSingle("ec_in_contract", "id,billno,zcgj_renewal,zcgj_isrenewal", new QFilter[]{new QFilter("billno", QCP.equals, number.toString())});
|
||||||
|
BillShowParameter formShowParameter = new BillShowParameter();
|
||||||
|
formShowParameter.setFormId("ec_in_contract");
|
||||||
|
formShowParameter.setPkId(contract.getLong("id"));
|
||||||
|
formShowParameter.getOpenStyle().setShowType(ShowType.Modal);
|
||||||
|
getView().showForm(formShowParameter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cellDoubleClick(CellClickEvent cellClickEvent) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,144 @@
|
||||||
|
package zcgj.zcdev.zcdev.pr.plugin.form;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.greenpineyu.fel.common.NumberUtil;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.entity.datamodel.ListSelectedRow;
|
||||||
|
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
||||||
|
import kd.bos.form.CloseCallBack;
|
||||||
|
import kd.bos.form.FormShowParameter;
|
||||||
|
import kd.bos.form.ShowType;
|
||||||
|
import kd.bos.form.control.events.BeforeItemClickEvent;
|
||||||
|
import kd.bos.form.control.events.ItemClickEvent;
|
||||||
|
import kd.bos.list.plugin.AbstractListPlugin;
|
||||||
|
import kd.bos.mvc.bill.BillModel;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class RenewalContractBillPlugin extends AbstractListPlugin {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterCopyData(EventObject e) {
|
||||||
|
BillModel billModel = (BillModel) e.getSource();
|
||||||
|
Object billno = billModel.getValue("billno");
|
||||||
|
DynamicObject contract = BusinessDataServiceHelper.loadSingle("ec_in_contract", "id,billno,billname,zcgj_renewal,zcgj_isrenewal", new QFilter[]{new QFilter("billno", QCP.equals, billno)});
|
||||||
|
super.afterCopyData(e);
|
||||||
|
this.getModel().setValue("id", null);//id
|
||||||
|
this.getModel().setValue("billno", null);//合同编码
|
||||||
|
this.getModel().setValue("billname", contract.getString("billname")+"-续签");//合同名称
|
||||||
|
this.getModel().setValue("zcgj_startdate", null);//起始日期
|
||||||
|
this.getModel().setValue("zcgj_enddate", null);//终止日期
|
||||||
|
// DynamicObject contract = BusinessDataServiceHelper.loadSingle("ec_in_contract", "id,billno,zcgj_renewal", new QFilter[]{new QFilter("billno", QCP.equals, billno)});
|
||||||
|
this.getModel().setValue("zcgj_renewal", contract);//续签主合同
|
||||||
|
this.getModel().setValue("zcgj_isrenewal", true);//是否续签
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerListener(EventObject e) {
|
||||||
|
super.registerListener(e);
|
||||||
|
// 工具栏注册监听(注意这里是把整个工具栏注册监听,工具栏项是没有运行时控件模型的)
|
||||||
|
this.addItemClickListeners("tbmain");//监听按钮
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void itemClick(ItemClickEvent evt) {
|
||||||
|
String itemKey = evt.getItemKey();
|
||||||
|
// List<String> objects = new ArrayList<>();
|
||||||
|
JSONArray jsonArray = new JSONArray();
|
||||||
|
// Map<Long,String> map = new HashMap<>();
|
||||||
|
if (itemKey.equals("zcgj_queryinstances")) {
|
||||||
|
Set<Long> setIds = getSelectOrderIds(this.getSelectedRows());
|
||||||
|
if (setIds.size() == 0) {
|
||||||
|
this.getView().showTipNotification("请选择要执行的数据。");
|
||||||
|
return;
|
||||||
|
} else if (setIds.size() > 1) {
|
||||||
|
this.getView().showTipNotification("只能选择一条数据查看!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DynamicObject[] receiveApplications = BusinessDataServiceHelper.load("ec_in_contract", "billno,billname,zcgj_renewal,zcgj_isrenewal", new QFilter[]{new QFilter("id", "in", setIds)});
|
||||||
|
DynamicObject receiveApplication = receiveApplications[0];
|
||||||
|
String billno = receiveApplication.getString("billno");
|
||||||
|
|
||||||
|
QFilter qf = new QFilter("zcgj_renewal.billno", QCP.equals,billno);
|
||||||
|
DynamicObject[] recontracts = BusinessDataServiceHelper.load("ec_in_contract", "id,billno,billname,zcgj_renewal", new QFilter[]{qf});
|
||||||
|
for (DynamicObject recontract : recontracts) {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("zcgj_billno",billno);
|
||||||
|
jsonObject.put("zcgj_billname",receiveApplication.getString("billname"));
|
||||||
|
jsonObject.put("zcgj_renewalnum",recontract.getString("billno"));
|
||||||
|
jsonObject.put("zcgj_renewalname",recontract.getString("billname"));
|
||||||
|
// objects.add( ));
|
||||||
|
// map.put(recontract.getLong("id"),recontract.getString("billno"));
|
||||||
|
jsonArray.add(jsonObject);
|
||||||
|
}
|
||||||
|
if (jsonArray.size()<1){
|
||||||
|
this.getView().showTipNotification("该合同暂无续签合同!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 如果是弹出动态表单工具栏项被点击,则打开指定的动态表单
|
||||||
|
if ("zcgj_queryinstances".equalsIgnoreCase(itemKey)) {
|
||||||
|
FormShowParameter formShowParameter = new FormShowParameter();
|
||||||
|
// 弹窗案例-动态表单 页面标识
|
||||||
|
formShowParameter.setFormId("zcgj_ec_renewal");
|
||||||
|
// 自定义传参,把当前单据的文本字段传过去
|
||||||
|
formShowParameter.setCustomParam("list", jsonArray.toJSONString());
|
||||||
|
// 设置回调事件,回调插件为当前插件,标识为zcgj_
|
||||||
|
formShowParameter.setCloseCallBack(new CloseCallBack(this, "zcgj_queryinstances"));
|
||||||
|
// 设置打开类型为模态框(不设置的话指令参数缺失,没办法打开页面)
|
||||||
|
formShowParameter.getOpenStyle().setShowType(ShowType.Modal);
|
||||||
|
// 当前页面发送showform指令。注意也可以从其他页面发送指令,后续有文章介绍
|
||||||
|
this.getView().showForm(formShowParameter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
super.itemClick(evt);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeItemClick(BeforeItemClickEvent evt) {
|
||||||
|
super.beforeItemClick(evt);
|
||||||
|
String itemKey = evt.getItemKey();
|
||||||
|
if (itemKey.equals("zcgj_inrenewal")) {
|
||||||
|
Set<Long> setIds = getSelectOrderIds(this.getSelectedRows());
|
||||||
|
if (setIds.size() == 0) {
|
||||||
|
this.getView().showTipNotification("请选择要执行的数据。");
|
||||||
|
return;
|
||||||
|
} else if (setIds.size() > 1) {
|
||||||
|
this.getView().showTipNotification("只能选择一条数据查看!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DynamicObject[] receiveApplications = BusinessDataServiceHelper.load("ec_in_contract", "billno,zcgj_renewal,zcgj_isrenewal,contstatus", new QFilter[]{new QFilter("id", "in", setIds)});
|
||||||
|
DynamicObject receiveApplication = receiveApplications[0];
|
||||||
|
boolean isrenewal = receiveApplication.getBoolean("zcgj_isrenewal");
|
||||||
|
if (isrenewal){
|
||||||
|
this.getView().showTipNotification("续签合同不能进行续签!");
|
||||||
|
evt.setCancel(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String contstatus = receiveApplication.getString("contstatus");
|
||||||
|
if (!contstatus.equals("01")){
|
||||||
|
this.getView().showTipNotification("收入合同需执行中才可进行续签!");
|
||||||
|
evt.setCancel(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private Set<Long> getSelectOrderIds(@NotNull ListSelectedRowCollection selectedRows) {
|
||||||
|
Set<Long> setIds = new HashSet<>();
|
||||||
|
for (ListSelectedRow selectedRow : selectedRows) {
|
||||||
|
setIds.add(NumberUtil.toLong(selectedRow.getPrimaryKeyValue()));
|
||||||
|
}
|
||||||
|
return setIds;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
package zcgj.zcdev.zcdev.pr.plugin.utils;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class PluginUtils {
|
||||||
|
|
||||||
|
/*
|
||||||
|
计算两个时间中的天数
|
||||||
|
*/
|
||||||
|
public static int getTimeDays(Date starDate, Date endDate) {
|
||||||
|
// 将 Date 转换为 LocalDate
|
||||||
|
LocalDate localDate1 = starDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||||
|
LocalDate localDate2 = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||||
|
|
||||||
|
// 计算相差的天数
|
||||||
|
long daysDifference = Math.abs(localDate2.toEpochDay() - localDate1.toEpochDay());
|
||||||
|
|
||||||
|
return Math.toIntExact(daysDifference);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue