parent
140bd6e3ac
commit
b841584609
|
@ -2,6 +2,7 @@ package zcgj.zcdev.zcdev.pr.plugin.form;
|
|||
|
||||
import kd.bos.bill.AbstractBillPlugIn;
|
||||
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.PropertyChangedArgs;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
|
@ -17,7 +18,6 @@ public class EcContractFromPlugin extends AbstractBillPlugIn implements Plugin {
|
|||
@Override
|
||||
public void afterCreateNewData(EventObject e) {
|
||||
super.afterCreateNewData(e);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -25,7 +25,20 @@ public class EcContractFromPlugin extends AbstractBillPlugIn implements Plugin {
|
|||
super.propertyChanged(e);
|
||||
String name = e.getProperty().getName();
|
||||
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");
|
||||
if (taxrate != null) {
|
||||
DynamicObject taxrateInfo = (DynamicObject) taxrate;
|
||||
|
|
|
@ -4,6 +4,7 @@ import kd.bos.bill.AbstractBillPlugIn;
|
|||
import kd.bos.context.RequestContext;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||
import kd.bos.form.field.BasedataEdit;
|
||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||
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.user.UserServiceHelper;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import zcgj.zcdev.zcdev.pr.plugin.utils.PluginUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.EventObject;
|
||||
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