5 changed files with 128 additions and 16 deletions
@ -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 @@ |
|||||||
|
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