diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/StatusChangePlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/StatusChangePlugin.java deleted file mode 100644 index fd226b0..0000000 --- a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/StatusChangePlugin.java +++ /dev/null @@ -1,25 +0,0 @@ -package apelet.tenantadmin.tenant.plugin; - -import apelet.common.core.object.ObjectCollection; -import apelet.common.core.object.ObjectValue; -import apelet.common.online.plugin.BeforeExecuteOperationArgs; -import apelet.common.online.plugin.OperationServicePlugIn; - -//提交后修改状态 -public class StatusChangePlugin extends OperationServicePlugIn { - @Override - public void beforeExecuteOperationTransaction(BeforeExecuteOperationArgs e){ - super.beforeExecuteOperationTransaction(e); - ObjectCollection modelCollcetion = e.getModelCollcetion(); - - if(modelCollcetion != null && !modelCollcetion.isEmpty()){ - for (int i = 0; i < modelCollcetion.size(); i++) { - // 获取单据对象 - ObjectValue bill = modelCollcetion.getObject(i); - bill.setString("status","2"); - //保存入库 - - } - } - } -} diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/ConfirmPlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/ConfirmPlugin.java new file mode 100644 index 0000000..c99592c --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/ConfirmPlugin.java @@ -0,0 +1,74 @@ +package apelet.tenantadmin.tenant.plugin.quotation; + +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); + } + } + } + } +} diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/ContractPlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/ContractPlugin.java new file mode 100644 index 0000000..3f1a50a --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/ContractPlugin.java @@ -0,0 +1,18 @@ +package apelet.tenantadmin.tenant.plugin.quotation; + +import apelet.common.online.abstractplugin.ListPlugin; +import apelet.common.orm.impl.Filter; +import apelet.common.orm.impl.FilterItem; + + +/* +合同列表界面设置过滤条件 + */ +public class ContractPlugin extends ListPlugin { + @Override + protected Filter getFilter(){ + Filter filter = new Filter(); + filter.add(new FilterItem("status",FilterItem.equals,"3")); + return filter; + } +} diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/OpenPopupPlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/OpenPopupPlugin.java new file mode 100644 index 0000000..64165b8 --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/OpenPopupPlugin.java @@ -0,0 +1,53 @@ +package apelet.tenantadmin.tenant.plugin.quotation; + + +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 map = new HashMap<>(); + // 为弹窗中的隐藏字段标识 + map.put("id",""); + // 设置参数 + showParameter.setCustomParam(map); + super.showForm(showParameter); + } + } +} diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/PopupGetIdPlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/PopupGetIdPlugin.java new file mode 100644 index 0000000..072034f --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/PopupGetIdPlugin.java @@ -0,0 +1,29 @@ +package apelet.tenantadmin.tenant.plugin.quotation; + +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 rowData = dto.getModel().getRowData(); + if (rowData != null && !rowData.isEmpty()){ + Collection 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); + } + } +} diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/QuotationPlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/QuotationPlugin.java similarity index 74% rename from application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/QuotationPlugin.java rename to application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/QuotationPlugin.java index 40e08bc..1d45e5d 100644 --- a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/QuotationPlugin.java +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/QuotationPlugin.java @@ -1,4 +1,4 @@ -package apelet.tenantadmin.tenant.plugin; +package apelet.tenantadmin.tenant.plugin.quotation; import apelet.common.core.object.ObjectCollection; import apelet.common.core.object.ObjectValue; @@ -7,6 +7,7 @@ import apelet.common.core.util.ApplicationContextHolder; import apelet.common.generator.utils.OrmGenDataSourceUtil; import apelet.common.online.abstractplugin.ExecutePluginParent; import apelet.common.online.model.constant.AttributeEnum; +import liquibase.repackaged.org.apache.commons.lang3.StringUtils; import java.math.BigDecimal; @@ -28,12 +29,21 @@ public class QuotationPlugin extends ExecutePluginParent { this.setWidgetAttribute("managerperson", AttributeEnum.VALUE_CHANGE, sysUserInfo); } - //隐藏拒绝理由 - this.setWidgetAttribute("canaelreason",AttributeEnum.SHOW,false); //设置报价单状态 - this.setWidgetAttribute("status",AttributeEnum.VALUE_CHANGE,"1"); - //设置总价初始值为0 - this.setWidgetAttribute("qty",AttributeEnum.VALUE_CHANGE,0); + //获取id + long id = objectValue.getLong("id"); + if(id == 0){ + this.setWidgetAttribute("status",AttributeEnum.VALUE_CHANGE,"1"); + this.setWidgetAttribute("billstatus",AttributeEnum.VALUE_CHANGE,"A"); + //设置总价初始值为0 + this.setWidgetAttribute("qty",AttributeEnum.VALUE_CHANGE,0); + } + //获取报价单状态 + String status = objectValue.getString("status"); + if(!("4").equals(status)){ + //隐藏取消原因 + this.setWidgetAttribute("canaelreason",AttributeEnum.SHOW,false); + } } @Override @@ -72,5 +82,9 @@ public class QuotationPlugin extends ExecutePluginParent { } this.setWidgetAttribute("qty",AttributeEnum.VALUE_CHANGE,allTotalAmount); } + //获取项目类型 + String type = objectValue.getString("type"); + type = StringUtils.removeEnd(type, ","); + this.setWidgetAttribute("type",AttributeEnum.VALUE_CHANGE,type); } } diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/ReviewPastPlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/ReviewPastPlugin.java new file mode 100644 index 0000000..afd5e5e --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/ReviewPastPlugin.java @@ -0,0 +1,55 @@ +package apelet.tenantadmin.tenant.plugin.quotation; + +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); + } + } + } + } +} diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/ReviewRefusePlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/ReviewRefusePlugin.java new file mode 100644 index 0000000..9e7f596 --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/ReviewRefusePlugin.java @@ -0,0 +1,54 @@ +package apelet.tenantadmin.tenant.plugin.quotation; + +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); + } + } + } + } +} diff --git a/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/StatusChangePlugin.java b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/StatusChangePlugin.java new file mode 100644 index 0000000..eb36659 --- /dev/null +++ b/application-tenant/tenant-admin/src/main/java/apelet/tenantadmin/tenant/plugin/quotation/StatusChangePlugin.java @@ -0,0 +1,49 @@ +package apelet.tenantadmin.tenant.plugin.quotation; + +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 StatusChangePlugin 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", "2"); + Selector selector = new Selector(); + selector.getList().add(new SelectorItem("status")); + ormGenDataSourceUtil().update(bill.getTableName(), bill, selector); + }catch (Exception ex) { + throw new RuntimeException(ex); + } + } + } + } +}