5 changed files with 128 additions and 16 deletions
@ -0,0 +1,76 @@
@@ -0,0 +1,76 @@
|
||||
package apelet.tenantadmin.tenant.plugin; |
||||
|
||||
import apelet.common.core.object.ObjectCollection; |
||||
import apelet.common.core.object.ObjectValue; |
||||
import apelet.common.core.object.TokenData; |
||||
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 java.math.BigDecimal; |
||||
|
||||
/* |
||||
报价单插件 |
||||
*/ |
||||
public class QuotationPlugin extends ExecutePluginParent { |
||||
private static final OrmGenDataSourceUtil ORM_GEN_DATA_SOURCE_UTIL = ApplicationContextHolder.getBean(OrmGenDataSourceUtil.class); |
||||
@Override |
||||
public void formCreated(String widgetVariableName, ObjectValue objectValue){ |
||||
super.formCreated(widgetVariableName, objectValue); |
||||
//获取当前登录的用户ID
|
||||
TokenData tokenData = TokenData.takeFromRequest(); |
||||
Long userId = tokenData.getUserId(); |
||||
//查询当前用户信息
|
||||
ObjectValue sysUserInfo = ORM_GEN_DATA_SOURCE_UTIL.queryOne("xy_sys_user", userId); |
||||
//赋值
|
||||
if (sysUserInfo != null){ |
||||
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); |
||||
} |
||||
|
||||
@Override |
||||
public void change(String widgetVariableName, ObjectValue objectValue){ |
||||
super.change(widgetVariableName, objectValue); |
||||
//获取报价单状态
|
||||
String status = objectValue.getString("status"); |
||||
//若status为"4"
|
||||
if(status.equals("4")){ |
||||
this.setWidgetAttribute("canaelreason",AttributeEnum.SHOW,true); |
||||
}else { |
||||
this.setWidgetAttribute("canaelreason",AttributeEnum.SHOW,false); |
||||
} |
||||
|
||||
//获取单据体
|
||||
ObjectCollection quotationE = objectValue.getObjectCollection("quotation_e"); |
||||
// 总金额
|
||||
BigDecimal allTotalAmount = BigDecimal.ZERO; |
||||
//判断是否有数据
|
||||
if (quotationE != null && !quotationE.isEmpty()){ |
||||
for (int i = 0; i < quotationE.size(); i++ ){ |
||||
// 获取行数据
|
||||
ObjectValue row = quotationE.getObject(i); |
||||
//获取指导折扣价
|
||||
BigDecimal discount = row.getBigDecimal("discount"); |
||||
// 判空处理
|
||||
if (discount == null) { |
||||
discount = BigDecimal.ZERO; |
||||
} |
||||
//获取数量
|
||||
int num = row.getInt("num"); |
||||
|
||||
// 计算总价 = 折扣价 * 数量
|
||||
BigDecimal totalAmount = discount.multiply(BigDecimal.valueOf(num)); |
||||
allTotalAmount = allTotalAmount.add(totalAmount); |
||||
} |
||||
this.setWidgetAttribute("qty",AttributeEnum.VALUE_CHANGE,allTotalAmount); |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
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"); |
||||
//保存入库
|
||||
|
||||
} |
||||
} |
||||
} |
||||
} |
||||
Loading…
Reference in new issue