预付单增加收款人信息校验
This commit is contained in:
parent
d9e9c80ca2
commit
09119816f2
|
@ -0,0 +1,127 @@
|
||||||
|
package zcgj.zcdev.zcdev.fs.plugin.operate;
|
||||||
|
|
||||||
|
import kd.bos.context.RequestContext;
|
||||||
|
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.PreparePropertysEventArgs;
|
||||||
|
import kd.bos.entity.validate.AbstractValidator;
|
||||||
|
import kd.bos.servicehelper.user.UserServiceHelper;
|
||||||
|
import zcgj.zcdev.zcdev.fs.utils.OrgCheckUtils;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预付单单收款信息账户检查
|
||||||
|
*/
|
||||||
|
public class PrepaybillRecAccountCkOp extends AbstractOperationServicePlugIn {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPreparePropertys(PreparePropertysEventArgs e) {
|
||||||
|
super.onPreparePropertys(e);
|
||||||
|
e.getFieldKeys().add("costcompany");
|
||||||
|
e.getFieldKeys().add("accountentry");
|
||||||
|
e.getFieldKeys().add("billpayertype");
|
||||||
|
e.getFieldKeys().add("billpayerid");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAddValidators(AddValidatorsEventArgs e) {
|
||||||
|
super.onAddValidators(e);
|
||||||
|
Long currentUserId = UserServiceHelper.getCurrentUserId();
|
||||||
|
// 当前用户所属组织
|
||||||
|
Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId);
|
||||||
|
//当前切换选择的组织
|
||||||
|
Long currentOrgId = RequestContext.get().getOrgId();
|
||||||
|
//当前所在的组织是属于矿山下的
|
||||||
|
//if(OrgCheckUtils.isKS(currentOrgId)){
|
||||||
|
e.getValidators().add(new ValidatorExt());
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
|
class ValidatorExt extends AbstractValidator {
|
||||||
|
@Override
|
||||||
|
public void validate() {
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
|
||||||
|
ExtendedDataEntity[] extendedDataEntities = this.getDataEntities();
|
||||||
|
Map<Long, Map<String,Object>> allMap = new HashMap<>();
|
||||||
|
//当前提交的探亲单据id集合
|
||||||
|
Map<Long, List<Long>> currentBillIdListMap = new HashMap<>();
|
||||||
|
|
||||||
|
for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) {
|
||||||
|
DynamicObject dataEntity = extendedDataEntity.getDataEntity();
|
||||||
|
long aLong = dataEntity.getLong("id");
|
||||||
|
//获取报销人
|
||||||
|
DynamicObject applier = dataEntity.getDynamicObject("applier");
|
||||||
|
long applierId = applier.getLong("id");
|
||||||
|
//获取申请日期
|
||||||
|
Object costcompanyObj = dataEntity.get("costcompany");
|
||||||
|
Object costdeptObj = dataEntity.get("costdept");
|
||||||
|
if(costcompanyObj!=null && costdeptObj != null){
|
||||||
|
DynamicObject costcompany = (DynamicObject)costcompanyObj;
|
||||||
|
long costcompanyId = costcompany.getLong("id");
|
||||||
|
if(OrgCheckUtils.isKS(costcompanyId)){
|
||||||
|
String billpayertype = dataEntity.getString("billpayertype"); //往来单位类型
|
||||||
|
if(billpayertype ==null){
|
||||||
|
this.addFatalErrorMessage(extendedDataEntity, String.format("往来类型不能为空"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DynamicObject billpayerid = dataEntity.getDynamicObject("billpayerid");//往来单位
|
||||||
|
String numberVal = null;
|
||||||
|
if(billpayerid!=null){
|
||||||
|
numberVal = billpayerid.getString("number");
|
||||||
|
}else{
|
||||||
|
this.addFatalErrorMessage(extendedDataEntity, String.format("往来单位不能为空"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DynamicObjectCollection accountentry = dataEntity.getDynamicObjectCollection("accountentry");
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
for (DynamicObject dynamicObject : accountentry) {
|
||||||
|
i++;
|
||||||
|
String payertype = dynamicObject.getString("payertype");//收款人类型
|
||||||
|
String payeraccountname = dynamicObject.getString("payeraccountname"); //账户名称
|
||||||
|
String accountTxt = dynamicObject.getString("zcgj_account_txt"); //账户名称
|
||||||
|
boolean isOk=true;
|
||||||
|
if("bd_supplier".equals(payertype)){ //供应商
|
||||||
|
DynamicObject supplier = dynamicObject.getDynamicObject("supplier");
|
||||||
|
if(supplier ==null){
|
||||||
|
this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行,收款人不能为空!",i));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String name = supplier.getString("name");
|
||||||
|
isOk = payeraccountname.equals(name);
|
||||||
|
if(isOk && "bd_supplier".equals(billpayertype)){
|
||||||
|
String number = supplier.getString("number");
|
||||||
|
isOk = number.equals(numberVal);
|
||||||
|
}
|
||||||
|
}else if("bd_customer".equals(payertype)){ //客户
|
||||||
|
DynamicObject customer = dynamicObject.getDynamicObject("customer");
|
||||||
|
if(customer ==null){
|
||||||
|
this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行,收款人不能为空!",i));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String name = customer.getString("name");
|
||||||
|
isOk = payeraccountname.equals(name);
|
||||||
|
if(isOk && "bd_customer".equals(billpayertype)){
|
||||||
|
String number = customer.getString("number");
|
||||||
|
isOk = number.equals(numberVal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!isOk && accountTxt.isEmpty()){
|
||||||
|
this.addFatalErrorMessage(extendedDataEntity, String.format("收款信息第%d行,往来单位、收款人名称和账户名称不一致!请在当前行填写账户不一致说明!",i));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue