Browse Source

报价单审批插件

dev-feature-quotation
wuyilin 2 weeks ago
parent
commit
3f63f4d3b3
  1. 74
      application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ConfirmPlugin.java
  2. 53
      application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/OpenPopupPlugin.java
  3. 29
      application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/PopupGetIdPlugin.java
  4. 55
      application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ReviewPastPlugin.java
  5. 54
      application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ReviewRefusePlugin.java

74
application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ConfirmPlugin.java

@ -0,0 +1,74 @@
package apelet.tenantadmin.tenant.plugin;
import apelet.common.core.object.ObjectCollection;
import apelet.common.core.object.ObjectValue;
import apelet.common.core.util.ApplicationContextHolder;
import apelet.common.generator.utils.OrmGenDataSourceUtil;
import apelet.common.online.plugin.BeginOperationTransactionArgs;
import apelet.common.online.plugin.OperationServicePlugIn;
import apelet.common.online.plugin.OperationServicePlugInArgs;
import apelet.common.online.service.impl.OnlineFormServiceImpl;
import apelet.common.orm.impl.Filter;
import apelet.common.orm.impl.FilterItem;
import apelet.common.orm.impl.Selector;
import apelet.common.orm.impl.SelectorItem;
/*
弹窗确认后保存数据库
*/
public class ConfirmPlugin extends OperationServicePlugIn {
private OnlineFormServiceImpl onlineFormService;
private OrmGenDataSourceUtil ormGenDataSourceUtil;
public ConfirmPlugin() {
onlineFormService = ApplicationContextHolder.getBean("onlineFormService");
ormGenDataSourceUtil = ApplicationContextHolder.getBean("ormGenDataSourceUtil");
}
@Override
public void onPreparePropertys(OperationServicePlugInArgs e) {
e.addFiledKey("id");
e.addFiledKey("canaelreason");
}
@Override
public void beginOperationTransaction(BeginOperationTransactionArgs e){
super.beginOperationTransaction(e);
ObjectCollection modelCollcetion = e.getModelCollcetion();
if (ormGenDataSourceUtil == null) {
throw new RuntimeException("ORM工具类初始化失败,无法执行数据库操作");
}
if (modelCollcetion != null && !modelCollcetion.isEmpty()) {
for (int i = 0; i < modelCollcetion.size(); i++) {
try {
ObjectValue object = modelCollcetion.getObject(i);
Object id = object.get("id");
String reason = object.getString("canaelreason");
//根据id查找对应单据
OrmGenDataSourceUtil ormUtil = ormGenDataSourceUtil;
if (ormUtil == null) {
return;
}
Filter pkFilter = new Filter();
pkFilter.add(new FilterItem("id", "=", id));
ObjectCollection oldCollection = ormUtil.query("quotation", pkFilter, null);
ObjectValue oldBill = oldCollection.getObject(0);
oldBill.put("status", "4");
oldBill.put("canaelreason", reason);
oldBill.put("billstatus","A");
Selector selector = new Selector();
selector.getList().add(new SelectorItem("status"));
selector.getList().add(new SelectorItem("canaelreason"));
selector.getList().add(new SelectorItem("billstatus"));
ormGenDataSourceUtil.update(oldBill.getTableName(), oldBill, selector);
}catch (Exception ex) {
// 抛出运行时异常,使事务回滚
throw new RuntimeException("更新单据状态失败: " + ex.getMessage(), ex);
}
}
}
}
}

53
application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/OpenPopupPlugin.java

@ -0,0 +1,53 @@
package apelet.tenantadmin.tenant.plugin;
import apelet.common.core.object.ObjectValue;
import apelet.common.online.abstractplugin.ListPlugin;
import apelet.common.online.model.ShowParameter;
import apelet.common.online.model.constant.ShowTypeEnum;
import apelet.common.online.model.constant.ViewStatus;
import java.util.HashMap;
import java.util.Map;
/*
取消报价插件,打开弹窗
*/
public class OpenPopupPlugin extends ListPlugin {
/**
* 目标表单ID - 表单在平台中的表单ID
*/
private static final Object FORM_ID = "2052578317407621120";
/**
* 触发按钮的标识 - 对应表单上按钮的 key/标识
* 点击此按钮时触发弹窗
*/
private static final String BUTTON_KEY = "取消报价";
/**
* 按钮点击事件
*
* @param widgetVariableName 按钮名称
* @param objectValue 数据
*/
@Override
public void buttonTriggered(String widgetVariableName, ObjectValue objectValue){
super.buttonTriggered(widgetVariableName, objectValue);
if (BUTTON_KEY.equals(widgetVariableName)){
//打开弹窗
ShowParameter showParameter = new ShowParameter();
showParameter.setFormId(FORM_ID.toString());
showParameter.setHowType(ShowTypeEnum.OPEN_ONLINE_MODAL);
showParameter.setStatus(ViewStatus.EDIT);
// 传参
Map<String,Object> map = new HashMap<>();
// 为弹窗中的隐藏字段标识
map.put("id","");
// 设置参数
showParameter.setCustomParam(map);
super.showForm(showParameter);
}
}
}

29
application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/PopupGetIdPlugin.java

@ -0,0 +1,29 @@
package apelet.tenantadmin.tenant.plugin;
import apelet.common.core.object.ObjectValue;
import apelet.common.online.abstractplugin.ExecutePluginParent;
import apelet.common.online.dto.OnlineEventPluginExecuteDto;
import apelet.common.online.model.constant.AttributeEnum;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.Collection;
import java.util.Map;
/*
弹窗获取id
*/
public class PopupGetIdPlugin extends ExecutePluginParent {
@Override
public void formCreated(String widgetVariableName, ObjectValue objectValue){
OnlineEventPluginExecuteDto dto = getDto();
Map<String, Object> rowData = dto.getModel().getRowData();
if (rowData != null && !rowData.isEmpty()){
Collection<Object> values = rowData.values();
Object firstValue = values.iterator().next();
JSONArray jsonArray = (JSONArray) firstValue;
JSONObject item = jsonArray.getJSONObject(0);
String id = item.getString("id");
this.setWidgetAttribute("id", AttributeEnum.VALUE_CHANGE,id);
}
}
}

55
application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ReviewPastPlugin.java

@ -0,0 +1,55 @@
package apelet.tenantadmin.tenant.plugin;
import apelet.common.core.object.ObjectCollection;
import apelet.common.core.object.ObjectValue;
import apelet.common.core.util.ApplicationContextHolder;
import apelet.common.generator.utils.OrmGenDataSourceUtil;
import apelet.common.online.plugin.BeginOperationTransactionArgs;
import apelet.common.online.plugin.OperationServicePlugIn;
import apelet.common.online.plugin.OperationServicePlugInArgs;
import apelet.common.online.service.impl.OnlineFormServiceImpl;
import apelet.common.orm.impl.Selector;
import apelet.common.orm.impl.SelectorItem;
/*
审核通过插件
*/
public class ReviewPastPlugin extends OperationServicePlugIn {
private OnlineFormServiceImpl onlineFormService;
private OrmGenDataSourceUtil ormGenDataSourceUtil;
public void AuditOperationServicePlugIn() {
onlineFormService = ApplicationContextHolder.getBean("onlineFormService");
ormGenDataSourceUtil = ApplicationContextHolder.getBean("ormGenDataSourceUtil");
}
@Override
public void onPreparePropertys(OperationServicePlugInArgs e) {
e.addFiledKey("id");
e.addFiledKey("status");
}
@Override
public void beginOperationTransaction(BeginOperationTransactionArgs e){
super.beginOperationTransaction(e);
ObjectCollection modelCollcetion = e.getModelCollcetion();
if(modelCollcetion != null && !modelCollcetion.isEmpty()){
for (int i = 0; i < modelCollcetion.size(); i++) {
try {
// 获取单据对象
ObjectValue bill = modelCollcetion.getObject(i);
bill.put("status", "3");
bill.put("billstatus","C");
Selector selector = new Selector();
selector.getList().add(new SelectorItem("status"));
selector.getList().add(new SelectorItem("billstatus"));
ormGenDataSourceUtil().update(bill.getTableName(), bill, selector);
}catch (Exception ex) {
throw new RuntimeException(ex);
}
}
}
}
}

54
application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/ReviewRefusePlugin.java

@ -0,0 +1,54 @@
package apelet.tenantadmin.tenant.plugin;
import apelet.common.core.object.ObjectCollection;
import apelet.common.core.object.ObjectValue;
import apelet.common.core.util.ApplicationContextHolder;
import apelet.common.generator.utils.OrmGenDataSourceUtil;
import apelet.common.online.plugin.BeginOperationTransactionArgs;
import apelet.common.online.plugin.OperationServicePlugIn;
import apelet.common.online.plugin.OperationServicePlugInArgs;
import apelet.common.online.service.impl.OnlineFormServiceImpl;
import apelet.common.orm.impl.Selector;
import apelet.common.orm.impl.SelectorItem;
/*
审核驳回插件
*/
public class ReviewRefusePlugin extends OperationServicePlugIn {
private OnlineFormServiceImpl onlineFormService;
private OrmGenDataSourceUtil ormGenDataSourceUtil;
public void AuditOperationServicePlugIn() {
onlineFormService = ApplicationContextHolder.getBean("onlineFormService");
ormGenDataSourceUtil = ApplicationContextHolder.getBean("ormGenDataSourceUtil");
}
@Override
public void onPreparePropertys(OperationServicePlugInArgs e) {
e.addFiledKey("id");
e.addFiledKey("status");
}
@Override
public void beginOperationTransaction(BeginOperationTransactionArgs e){
super.beginOperationTransaction(e);
ObjectCollection modelCollcetion = e.getModelCollcetion();
if(modelCollcetion != null && !modelCollcetion.isEmpty()){
for (int i = 0; i < modelCollcetion.size(); i++) {
try {
// 获取单据对象
ObjectValue bill = modelCollcetion.getObject(i);
bill.put("status", "1");
bill.put("billstatus","A");
Selector selector = new Selector();
selector.getList().add(new SelectorItem("status"));
selector.getList().add(new SelectorItem("billstatus"));
ormGenDataSourceUtil().update(bill.getTableName(), bill, selector);
}catch (Exception ex) {
throw new RuntimeException(ex);
}
}
}
}
}
Loading…
Cancel
Save