付款单-收款方需要显示编码+名称
收款单-付款方需要显示编码+名称 数据采集校验&&重新赋值申请下拨金额 优化付款单推送凭证(优化凭证中弹性域中文本的获取逻辑) s
This commit is contained in:
parent
1ef40d66a2
commit
2d9d99ff63
|
|
@ -4,6 +4,7 @@ import kd.bos.dataentity.entity.DynamicObject;
|
||||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
import kd.bos.dataentity.utils.StringUtils;
|
import kd.bos.dataentity.utils.StringUtils;
|
||||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||||
|
import kd.bos.form.control.Label;
|
||||||
import kd.bos.form.control.events.BeforeItemClickEvent;
|
import kd.bos.form.control.events.BeforeItemClickEvent;
|
||||||
import kd.bos.form.events.BeforeClosedEvent;
|
import kd.bos.form.events.BeforeClosedEvent;
|
||||||
import kd.bos.form.events.ClosedCallBackEvent;
|
import kd.bos.form.events.ClosedCallBackEvent;
|
||||||
|
|
@ -36,6 +37,17 @@ public class RecBillFromPlugin extends AbstractFormPlugin implements Plugin {
|
||||||
@Override
|
@Override
|
||||||
public void afterBindData(EventObject e) {
|
public void afterBindData(EventObject e) {
|
||||||
super.afterBindData(e);
|
super.afterBindData(e);
|
||||||
|
//携带付款人编码
|
||||||
|
String payerformid = ""+this.getView().getModel().getValue("payerformid");//付款人类型标识ID
|
||||||
|
Long payer = Long.valueOf(""+this.getView().getModel().getValue("payer"));//付款人ID
|
||||||
|
if (!"other".equals(payerformid)) {
|
||||||
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(payer, payerformid);
|
||||||
|
if (null != dynamicObject) {
|
||||||
|
Label label1 = this.getView().getControl("shjh_positionbr4");
|
||||||
|
label1.setText(dynamicObject.getString("number"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//携带生单规则分录的业务大类,业务小类,成本中心,利润中心到收款处理单头__逻辑迁移到单据保存操作插件
|
//携带生单规则分录的业务大类,业务小类,成本中心,利润中心到收款处理单头__逻辑迁移到单据保存操作插件
|
||||||
// carryCustomer();
|
// carryCustomer();
|
||||||
//根据分录清账状态去默认表头的清账状态
|
//根据分录清账状态去默认表头的清账状态
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,18 @@ public class TextFieldDemo extends AbstractFormPlugin {
|
||||||
Label label = this.getView().getControl("shjh_sjskfs");
|
Label label = this.getView().getControl("shjh_sjskfs");
|
||||||
label.setText(""+this.getView().getModel().getValue("shjh_asstactrealname"));
|
label.setText(""+this.getView().getModel().getValue("shjh_asstactrealname"));
|
||||||
|
|
||||||
|
//携带收款人编码
|
||||||
|
String payeeformid = ""+this.getView().getModel().getValue("payeeformid");//收款人基础资料标识
|
||||||
|
Long payee = Long.valueOf(""+this.getView().getModel().getValue("payee"));//收款人ID
|
||||||
|
if (payee != 0 && payeeformid!= null &&!payeeformid.isEmpty()) {
|
||||||
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(payee, payeeformid);
|
||||||
|
if (null != dynamicObject) {
|
||||||
|
Label label1 = this.getView().getControl("shjh_positionbr4");
|
||||||
|
label1.setText(dynamicObject.getString("number"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 获取成本中心和利润中心的控件
|
// 获取成本中心和利润中心的控件
|
||||||
BasedataEdit shjh_costcenter = this.getView().getControl("shjh_costcenter");
|
BasedataEdit shjh_costcenter = this.getView().getControl("shjh_costcenter");
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,143 @@
|
||||||
|
package shjh.jhzj7.fi.fi.plugin.operate;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.entity.ExtendedDataEntity;
|
||||||
|
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
|
||||||
|
import kd.bos.entity.plugin.AddValidatorsEventArgs;
|
||||||
|
import kd.bos.entity.plugin.args.AfterOperationArgs;
|
||||||
|
import kd.bos.entity.plugin.args.BeforeOperationArgs;
|
||||||
|
import kd.bos.entity.validate.AbstractValidator;
|
||||||
|
import kd.bos.logging.Log;
|
||||||
|
import kd.bos.logging.LogFactory;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.operation.DeleteServiceHelper;
|
||||||
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
import kd.tmc.fbp.common.bean.BizBalanceModelBean;
|
||||||
|
import kd.tmc.fbp.common.enums.TmcAppEnum;
|
||||||
|
import kd.tmc.fbp.common.helper.TmcParameterHelper;
|
||||||
|
import kd.tmc.fbp.service.model.BalanceModelService;
|
||||||
|
import shjh.jhzj7.fi.fi.utils.domin.ResponseData;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 请款单保存操作插件
|
||||||
|
*/
|
||||||
|
public class ApplyTransBillSaveOperation extends AbstractOperationServicePlugIn implements Plugin {
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(ApplyTransBillSaveOperation.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAddValidators(AddValidatorsEventArgs e) {
|
||||||
|
super.onAddValidators(e);
|
||||||
|
e.addValidator(new AbstractValidator() {
|
||||||
|
@Override
|
||||||
|
public void validate() {
|
||||||
|
String operateKey = this.getOperateKey();
|
||||||
|
//数据采集校验&&重新赋值申请下拨金额
|
||||||
|
if ("save".equals(operateKey)){
|
||||||
|
ExtendedDataEntity[] entities = this.getDataEntities();
|
||||||
|
for (ExtendedDataEntity entity : entities) {
|
||||||
|
DynamicObject aDo = entity.getDataEntity();
|
||||||
|
DynamicObject currency = aDo.getDynamicObject("currency");
|
||||||
|
Long currencyId = currency.getLong("id");
|
||||||
|
DynamicObject org = aDo.getDynamicObject("company");
|
||||||
|
Long orgId = org.getLong("id");
|
||||||
|
String balanceType = TmcParameterHelper.getAppStringParameter(TmcAppEnum.FCS.getId(), orgId, "balancevalue");
|
||||||
|
BalanceModelService balanceModelService = new BalanceModelService();
|
||||||
|
|
||||||
|
DynamicObjectCollection entrys = aDo.getDynamicObjectCollection("entrys");
|
||||||
|
for (DynamicObject entry : entrys) {
|
||||||
|
|
||||||
|
DynamicObject bankAcct = entry.getDynamicObject("subacct");
|
||||||
|
BizBalanceModelBean bizBalanceModelBean = balanceModelService.getRunningBalance(balanceType, bankAcct.getLong("id"), currencyId);
|
||||||
|
BigDecimal subcurbalance = bizBalanceModelBean.getAmount();//子账户即时余额
|
||||||
|
BigDecimal applyamt = entry.getBigDecimal("applyamt");//申请下拨金额
|
||||||
|
// 如果subcurbalance小于applyamt,则调整applyamt的值
|
||||||
|
if (subcurbalance.compareTo(applyamt) >= 0) {
|
||||||
|
this.addMessage(entity,"子账户即时余额 >= 申请下拨金额,不允许生成请款单!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
|
||||||
|
super.beforeExecuteOperationTransaction(e);
|
||||||
|
//数据采集校验&&重新赋值申请下拨金额
|
||||||
|
String eok = e.getOperationKey();
|
||||||
|
if("save".equals(eok)){
|
||||||
|
DynamicObject[] dos = e.getDataEntities();
|
||||||
|
for (DynamicObject aDo : dos) {
|
||||||
|
DynamicObject currency = aDo.getDynamicObject("currency");
|
||||||
|
Long currencyId = currency.getLong("id");
|
||||||
|
DynamicObject org = aDo.getDynamicObject("company");
|
||||||
|
Long orgId = org.getLong("id");
|
||||||
|
String balanceType = TmcParameterHelper.getAppStringParameter(TmcAppEnum.FCS.getId(), orgId, "balancevalue");
|
||||||
|
BalanceModelService balanceModelService = new BalanceModelService();
|
||||||
|
|
||||||
|
DynamicObjectCollection entrys = aDo.getDynamicObjectCollection("entrys");
|
||||||
|
for (DynamicObject entry : entrys) {
|
||||||
|
|
||||||
|
DynamicObject bankAcct = entry.getDynamicObject("subacct");
|
||||||
|
BizBalanceModelBean bizBalanceModelBean = balanceModelService.getRunningBalance(balanceType, bankAcct.getLong("id"), currencyId);
|
||||||
|
BigDecimal subcurbalance = bizBalanceModelBean.getAmount();//子账户即时余额
|
||||||
|
|
||||||
|
// BigDecimal subcurbalance = entry.getBigDecimal("subcurbalance");//子账户即时余额
|
||||||
|
BigDecimal applyamt = entry.getBigDecimal("applyamt");//申请下拨金额
|
||||||
|
// 如果subcurbalance小于applyamt,则调整applyamt的值
|
||||||
|
if (subcurbalance.compareTo(applyamt) < 0) {
|
||||||
|
applyamt = applyamt.subtract(subcurbalance);
|
||||||
|
entry.set("applyamt", applyamt);//重新赋值--申请下拨金额
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterExecuteOperationTransaction(AfterOperationArgs e) {
|
||||||
|
super.afterExecuteOperationTransaction(e);
|
||||||
|
//数据采集校验&&重新赋值申请下拨金额
|
||||||
|
String eok = e.getOperationKey();
|
||||||
|
// if("save".equals(eok)){
|
||||||
|
// DynamicObject[] dos = e.getDataEntities();
|
||||||
|
// DynamicObject prinfo;
|
||||||
|
// for (DynamicObject aDo : dos) {
|
||||||
|
// boolean isdelete = false;
|
||||||
|
// DynamicObject currency = aDo.getDynamicObject("currency");
|
||||||
|
// Long currencyId = currency.getLong("id");
|
||||||
|
// DynamicObject org = aDo.getDynamicObject("company");
|
||||||
|
// Long orgId = org.getLong("id");
|
||||||
|
// String balanceType = TmcParameterHelper.getAppStringParameter(TmcAppEnum.FCS.getId(), orgId, "balancevalue");
|
||||||
|
// BalanceModelService balanceModelService = new BalanceModelService();
|
||||||
|
//
|
||||||
|
// prinfo = BusinessDataServiceHelper.loadSingle(aDo.getPkValue(), aDo.getDataEntityType().getName());
|
||||||
|
// DynamicObjectCollection entrys = prinfo.getDynamicObjectCollection("entrys");
|
||||||
|
// for (DynamicObject entry : entrys) {
|
||||||
|
//
|
||||||
|
// DynamicObject bankAcct = entry.getDynamicObject("subacct");
|
||||||
|
// BizBalanceModelBean bizBalanceModelBean = balanceModelService.getRunningBalance(balanceType, bankAcct.getLong("id"), currencyId);
|
||||||
|
// BigDecimal subcurbalance = bizBalanceModelBean.getAmount();//子账户即时余额
|
||||||
|
//
|
||||||
|
//// BigDecimal subcurbalance = entry.getBigDecimal("subcurbalance");//子账户即时余额
|
||||||
|
// BigDecimal applyamt = entry.getBigDecimal("applyamt");//申请下拨金额
|
||||||
|
// // 如果subcurbalance小于applyamt,则调整applyamt的值
|
||||||
|
// if (subcurbalance.compareTo(applyamt) >= 0) {
|
||||||
|
// isdelete = true;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if(isdelete){
|
||||||
|
// DeleteServiceHelper.delete(aDo.getDataEntityType(),new Object[]{prinfo.getPkValue()});
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -43,8 +43,12 @@ public class PayBillSubmitOperation extends AbstractOperationServicePlugIn imple
|
||||||
ExtendedDataEntity[] entities = this.getDataEntities();
|
ExtendedDataEntity[] entities = this.getDataEntities();
|
||||||
for (ExtendedDataEntity entity : entities) {
|
for (ExtendedDataEntity entity : entities) {
|
||||||
DynamicObject bill = entity.getDataEntity();
|
DynamicObject bill = entity.getDataEntity();
|
||||||
|
String sourcesystem = "";
|
||||||
|
try {
|
||||||
|
sourcesystem = bill.getString("shjh_sourcesystem");//来源系统:SAP_A 费控_B
|
||||||
|
}catch (Exception e){
|
||||||
bill = BusinessDataServiceHelper.loadSingle(bill.getPkValue(),"cas_paybill");
|
bill = BusinessDataServiceHelper.loadSingle(bill.getPkValue(),"cas_paybill");
|
||||||
String sourcesystem = bill.getString("shjh_sourcesystem");//来源系统:SAP_A 费控_B
|
}
|
||||||
boolean shjhSapvalidate = bill.getBoolean("shjh_sapvalidate");//SAP校验是否通过
|
boolean shjhSapvalidate = bill.getBoolean("shjh_sapvalidate");//SAP校验是否通过
|
||||||
//付款单提交时,调用SAP应付凭证数据校验接口,校验不通过,弹框提示用户具体原因;如果校验通过,则标记;后续再提交时无需校验。
|
//付款单提交时,调用SAP应付凭证数据校验接口,校验不通过,弹框提示用户具体原因;如果校验通过,则标记;后续再提交时无需校验。
|
||||||
if ("A".equals(sourcesystem) && !shjhSapvalidate) {
|
if ("A".equals(sourcesystem) && !shjhSapvalidate) {
|
||||||
|
|
|
||||||
|
|
@ -315,12 +315,23 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
|
||||||
hsxminfo = QueryServiceHelper.queryOne("bos_costcenter", "id,name,number",
|
hsxminfo = QueryServiceHelper.queryOne("bos_costcenter", "id,name,number",
|
||||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||||
IT_ITEMS.put("KOSTL",hsxminfo.getString("number"));//成本中心_成本中心
|
IT_ITEMS.put("KOSTL",hsxminfo.getString("number"));//成本中心_成本中心
|
||||||
}else if("f000054".equals(asstype)){
|
|
||||||
//原因码 f000054
|
|
||||||
IT_ITEMS.put("RSTGR",glassistbd.getString("assval"));//成本中心_成本中心
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gl_assist_bd = QueryServiceHelper.query("gl_assist_txt", "asstype,assval",
|
||||||
|
new QFilter[]{new QFilter("hg.id", QCP.equals, assgrpinfo.getPkValue())});//核算项目组合纵表-文本
|
||||||
|
for (int j = 0; j < gl_assist_bd.size(); j++) {
|
||||||
|
glassistbd = gl_assist_bd.get(j);
|
||||||
|
asstype = glassistbd.getString("asstype");//核算项目类型-对应核算维度的字段名
|
||||||
|
if("f000054".equals(asstype)){
|
||||||
|
//原因码 f000054
|
||||||
|
IT_ITEMS.put("RSTGR",glassistbd.getString("assval"));
|
||||||
|
}else if("f000056".equals(asstype)){
|
||||||
|
//分配编号 f000056
|
||||||
|
IT_ITEMS.put("ZUONR",glassistbd.getString("assval"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取借方金额
|
// 获取借方金额
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue