Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
		
						commit
						725c8ce0f6
					
				| 
						 | 
				
			
			@ -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));
 | 
			
		||||
                            }
 | 
			
		||||
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,79 @@
 | 
			
		|||
package zcgj.zcdev.zcdev.pr.plugin.form;
 | 
			
		||||
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.utils.StringUtils;
 | 
			
		||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
 | 
			
		||||
import kd.bos.list.ListShowParameter;
 | 
			
		||||
import kd.bos.orm.query.QFilter;
 | 
			
		||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
			
		||||
import kd.ec.contract.formplugin.ContractRevisionListingPlugin;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
public class ContractRevisionListingExtPlugin extends ContractRevisionListingPlugin {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void beforeF7Select(BeforeF7SelectEvent beforef7selectevent) {
 | 
			
		||||
        switch (beforef7selectevent.getProperty().getName()) {
 | 
			
		||||
            case "listid":
 | 
			
		||||
                this.beforeListingSelect(beforef7selectevent);
 | 
			
		||||
                break;
 | 
			
		||||
            case "listunitproject":
 | 
			
		||||
                this.beforeUnitProjectSelect(beforef7selectevent);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    private void beforeListingSelect(BeforeF7SelectEvent beforef7selectevent) {
 | 
			
		||||
        ListShowParameter lsp = (ListShowParameter)beforef7selectevent.getFormShowParameter();
 | 
			
		||||
        List<QFilter> qFilters = lsp.getListFilterParameter().getQFilters();
 | 
			
		||||
        this.addContractAndModelFilter(qFilters);
 | 
			
		||||
        this.addNewListingSuperFilter(qFilters);
 | 
			
		||||
        int row = beforef7selectevent.getRow();
 | 
			
		||||
        DynamicObject con = (DynamicObject)this.getModel().getValue("contract");
 | 
			
		||||
        String baseType = BusinessDataServiceHelper.loadSingle(con.getDynamicObject("contracttype").getPkValue(), "ec_conttype").getDynamicObject("contattr").getString("basictype");
 | 
			
		||||
        String subChangeType = (String)this.getModel().getValue("subchangetype", row);
 | 
			
		||||
        /*if (StringUtils.equals(subChangeType, "1") && !"09".equals(baseType)) {
 | 
			
		||||
            qFilters.add(new QFilter("lstsettleqty", "<", "totalqty", true));
 | 
			
		||||
        }*/
 | 
			
		||||
 | 
			
		||||
        int rowIndex = this.getModel().getEntryCurrentRowIndex("kapianentry");
 | 
			
		||||
        Object listModelId = this.getModel().getValue("listmodelid", rowIndex);
 | 
			
		||||
        lsp.setCustomParam("listmodelid", listModelId);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void addContractAndModelFilter(List<QFilter> qFilters) {
 | 
			
		||||
        int rowIndex = this.getModel().getEntryCurrentRowIndex("kapianentry");
 | 
			
		||||
        Object listModelId = this.getModel().getValue("listmodelid", rowIndex);
 | 
			
		||||
        if (StringUtils.isNotBlank(listModelId)) {
 | 
			
		||||
            qFilters.add(new QFilter("listingmodel", "=", Long.parseLong(listModelId.toString())));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        DynamicObject contract = (DynamicObject)this.getModel().getValue("contract");
 | 
			
		||||
        if (contract != null) {
 | 
			
		||||
            qFilters.add(new QFilter("contractid", "=", contract.getLong("id")));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void addNewListingSuperFilter(List<QFilter> qFilters) {
 | 
			
		||||
        for(DynamicObject entry : this.getModel().getEntryEntity("entryentity")) {
 | 
			
		||||
            if (!"3".equals(entry.getString("subchangetype")) && !"2".equals(entry.getString("subchangetype"))) {
 | 
			
		||||
                DynamicObject listing = entry.getDynamicObject("listid");
 | 
			
		||||
                if (listing != null) {
 | 
			
		||||
                    qFilters.add(new QFilter("id", "<>", listing.getLong("id")));
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                DynamicObject parent = entry.getDynamicObject("parentgroup");
 | 
			
		||||
                if (parent != null) {
 | 
			
		||||
                    boolean isLeaf = parent.getBoolean("isleaf");
 | 
			
		||||
                    if (isLeaf) {
 | 
			
		||||
                        qFilters.add(new QFilter("id", "<>", parent.getLong("id")));
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,8 @@
 | 
			
		|||
package zcgj.zcdev.zcdev.pr.plugin.form;
 | 
			
		||||
 | 
			
		||||
import com.greenpineyu.fel.common.NumberUtil;
 | 
			
		||||
import kd.bos.coderule.api.CodeRuleInfo;
 | 
			
		||||
import kd.bos.coderule.service.cache.CodeRuleCache;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
			
		||||
import kd.bos.entity.datamodel.ListSelectedRow;
 | 
			
		||||
| 
						 | 
				
			
			@ -18,6 +20,7 @@ import kd.bos.orm.ORM;
 | 
			
		|||
import kd.bos.orm.query.QCP;
 | 
			
		||||
import kd.bos.orm.query.QFilter;
 | 
			
		||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.coderule.CodeRuleServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.operation.OperationServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
 | 
			
		||||
import kd.fi.gl.util.DateUtil;
 | 
			
		||||
| 
						 | 
				
			
			@ -60,15 +63,18 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
 | 
			
		|||
            view.invokeOperation("refresh");
 | 
			
		||||
        } else if (itemKey.equals("zcgj_asset")) {//同步资产卡片
 | 
			
		||||
            List<String> strings = new ArrayList<>();
 | 
			
		||||
            strings.add("100104");
 | 
			
		||||
            strings.add("100113");
 | 
			
		||||
            strings.add("100105");
 | 
			
		||||
            strings.add("100109");
 | 
			
		||||
            strings.add("100112");
 | 
			
		||||
            DynamicObject[] equipmenttype = BusinessDataServiceHelper.load("zcgj_equipmenttype", "number,zcgj_assetcat.number",null);
 | 
			
		||||
            for (DynamicObject dynamicObject : equipmenttype) {
 | 
			
		||||
                String number = dynamicObject.getString("zcgj_assetcat.number");
 | 
			
		||||
                if (number.isEmpty() && number!=null){
 | 
			
		||||
                    strings.add(number) ;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            QFilter qFilter = new QFilter("assetcat.number", QCP.in, strings);
 | 
			
		||||
            DynamicObject[] realcards = BusinessDataServiceHelper.load("fa_card_real", "number,assetname,model,realaccountdate,assetunit,supplier,zcgj_platenumber,unit,zcgj_manufacturer,zcgj_prodate,storeplace,creator,createtime,modifier,modifytime,auditdate,auditor", new QFilter[]{qFilter});
 | 
			
		||||
            DynamicObject[] realcards = BusinessDataServiceHelper.load("fa_asset_card", "zcgj_costcenter,headusedept,finentry,assetcat,number,assetname,model,realaccountdate,assetunit,supplier,zcgj_platenumber,unit,zcgj_manufacturer,zcgj_prodate,storeplace,creator,createtime,modifier,modifytime,auditdate,auditor", new QFilter[]{qFilter});
 | 
			
		||||
            for (DynamicObject realcard : realcards) {
 | 
			
		||||
                String number = realcard.getString("number");//资产编码
 | 
			
		||||
//                DynamicObject assetcat = realcard.getDynamicObject("assetcat");//资产类别
 | 
			
		||||
                String assetname = realcard.getString("assetname");//资产名称
 | 
			
		||||
                log.info("同步的实物卡片为"+number+assetname);
 | 
			
		||||
                String model = realcard.getString("model");//规格型号
 | 
			
		||||
| 
						 | 
				
			
			@ -80,6 +86,9 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
 | 
			
		|||
                String manufacturer = realcard.getString("zcgj_manufacturer");//生产厂家
 | 
			
		||||
                Date prodate = realcard.getDate("zcgj_prodate");//出场日期
 | 
			
		||||
                DynamicObject storeplace = realcard.getDynamicObject("storeplace");//存放地点
 | 
			
		||||
                DynamicObject headusedept = realcard.getDynamicObject("headusedept");//使用部门
 | 
			
		||||
                DynamicObject zcgj_costcenter = realcard.getDynamicObject("zcgj_costcenter");//成本中心
 | 
			
		||||
                DynamicObjectCollection finentrys = realcard.getDynamicObjectCollection("finentry");//财务卡片分录
 | 
			
		||||
                String fulladdress = null;
 | 
			
		||||
                if(storeplace!=null){
 | 
			
		||||
                    DynamicObject storeplaceinfo = BusinessDataServiceHelper.loadSingle("fa_storeplace", new QFilter[]{new QFilter("id", QCP.equals, storeplace.getLong("id"))});
 | 
			
		||||
| 
						 | 
				
			
			@ -101,12 +110,13 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
 | 
			
		|||
                if (eceq_equipment_card!=null){
 | 
			
		||||
                    equipmentcard.set("id",eceq_equipment_card.getLong("id"));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                equipmentcard.set("billno",timeText);//单据编号
 | 
			
		||||
                equipmentcard.set("status","C");//单据状态
 | 
			
		||||
                equipmentcard.set("billstatus","C");//
 | 
			
		||||
                equipmentcard.set("enable","1");//可用
 | 
			
		||||
                equipmentcard.set("property","OWN");//设备性质
 | 
			
		||||
                equipmentcard.set("number",number);//设备编号
 | 
			
		||||
                equipmentcard.set("number",getCodeRule(equipmentcard,"53BT+ZJB86=L"));//设备编号
 | 
			
		||||
                equipmentcard.set("name",assetname);//设备名称
 | 
			
		||||
                equipmentcard.set("modelnum",model);//规格型号
 | 
			
		||||
                equipmentcard.set("indate",realaccountdate);//入库日期
 | 
			
		||||
| 
						 | 
				
			
			@ -129,6 +139,25 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
 | 
			
		|||
                equipmentcard.set("modifytime",modifytime);//修改日期
 | 
			
		||||
                equipmentcard.set("auditor",auditor);//审核人
 | 
			
		||||
                equipmentcard.set("auditdate",auditdate);//审核日期
 | 
			
		||||
                equipmentcard.set("zcgj_assetnumber",number);//资产编码
 | 
			
		||||
                equipmentcard.set("zcgj_headusedepts",headusedept);//使用部门
 | 
			
		||||
                equipmentcard.set("zcgj_costcenters",zcgj_costcenter);//审核日期
 | 
			
		||||
 | 
			
		||||
                if(finentrys.size()>0){
 | 
			
		||||
                    DynamicObject finentry = finentrys.get(0);
 | 
			
		||||
                    BigDecimal finOriginalval = finentry.getBigDecimal("fin_originalval");//资产原值
 | 
			
		||||
                    BigDecimal fin_preusingamount = finentry.getBigDecimal("fin_preusingamount");//预计使用月
 | 
			
		||||
                    BigDecimal fin_depredamount = finentry.getBigDecimal("fin_depredamount");//已折旧月
 | 
			
		||||
                    BigDecimal fin_preresidualval = finentry.getBigDecimal("fin_preresidualval");//预计净残值
 | 
			
		||||
                    BigDecimal fin_accumdepre = finentry.getBigDecimal("fin_accumdepre");//累计折旧
 | 
			
		||||
                    BigDecimal fin_networth = finentry.getBigDecimal("fin_networth");//净值
 | 
			
		||||
                    equipmentcard.set("zcgj_networth",fin_networth);
 | 
			
		||||
                    equipmentcard.set("zcgj_accumdepre",fin_accumdepre);
 | 
			
		||||
                    equipmentcard.set("zcgj_depredamount",fin_depredamount);
 | 
			
		||||
                    equipmentcard.set("zcgj_preresidualval",fin_preresidualval);
 | 
			
		||||
                    equipmentcard.set("zcgj_preusingamount",fin_preusingamount);
 | 
			
		||||
                    equipmentcard.set("zcgj_unitprice",finOriginalval);
 | 
			
		||||
                }
 | 
			
		||||
                if (eceq_equipment_card!=null){
 | 
			
		||||
                    SaveServiceHelper.update(equipmentcard);
 | 
			
		||||
                    System.out.println();
 | 
			
		||||
| 
						 | 
				
			
			@ -217,4 +246,23 @@ public class EquipmentCardListPlugin extends AbstractListPlugin implements Plugi
 | 
			
		|||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获取编码规则生成编码
 | 
			
		||||
     * @param data 实体
 | 
			
		||||
     * @param number 编码规则编码
 | 
			
		||||
     * @return
 | 
			
		||||
     */
 | 
			
		||||
    public static String getCodeRule(DynamicObject data,String number) {
 | 
			
		||||
        //查找编码规则
 | 
			
		||||
        DynamicObject coderule = BusinessDataServiceHelper.loadSingle("bos_coderule", "id", new QFilter[]{new QFilter("number", QCP.equals, number)});
 | 
			
		||||
        //编码对象
 | 
			
		||||
        if (coderule != null) {
 | 
			
		||||
            CodeRuleInfo codeRule = CodeRuleCache.reloadCodeRuleById(coderule.getString("id"));
 | 
			
		||||
            //生成箱号编码
 | 
			
		||||
            String archivebillno = CodeRuleServiceHelper.getNumber(codeRule, data);
 | 
			
		||||
        }
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,24 +4,28 @@ import kd.bos.bill.AbstractBillPlugIn;
 | 
			
		|||
import kd.bos.bill.BillShowParameter;
 | 
			
		||||
import kd.bos.bill.OperationStatus;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.entity.datamodel.events.ChangeData;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
			
		||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 | 
			
		||||
import kd.bos.permission.api.HasPermOrgResult;
 | 
			
		||||
import kd.bos.servicehelper.org.OrgUnitServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.permission.PermissionServiceHelper;
 | 
			
		||||
import kd.bos.servicehelper.user.UserServiceHelper;
 | 
			
		||||
import kd.bos.form.field.BasedataEdit;
 | 
			
		||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
 | 
			
		||||
import kd.bos.form.field.events.BeforeF7SelectListener;
 | 
			
		||||
import kd.bos.list.ListShowParameter;
 | 
			
		||||
import kd.bos.mvc.bill.BillView;
 | 
			
		||||
import kd.bos.orm.query.QCP;
 | 
			
		||||
import kd.bos.orm.query.QFilter;
 | 
			
		||||
import kd.bos.servicehelper.QueryServiceHelper;
 | 
			
		||||
import kd.sdk.plugin.Plugin;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.EventObject;
 | 
			
		||||
import java.util.HashSet;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 1:付款申请单通用插件
 | 
			
		||||
 */
 | 
			
		||||
public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plugin {
 | 
			
		||||
public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void afterBindData(EventObject e) {
 | 
			
		||||
| 
						 | 
				
			
			@ -114,4 +118,51 @@ public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plu
 | 
			
		|||
        }*/
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void registerListener(EventObject e) {
 | 
			
		||||
        super.registerListener(e);
 | 
			
		||||
        //仅针对矿山下组织下的逻辑
 | 
			
		||||
        BasedataEdit expenseitem = this.getControl("zcgj_expenseitem"); //费用项目
 | 
			
		||||
        if (expenseitem != null) {
 | 
			
		||||
            expenseitem.addBeforeF7SelectListener(this);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
 | 
			
		||||
        String name = beforeF7SelectEvent.getProperty().getName();
 | 
			
		||||
        String billFormId = ((BillView) this.getView()).getFormId();//单据标识
 | 
			
		||||
        if("ec_paymentapply".equals(billFormId)){//付款申请单
 | 
			
		||||
            if (name.equals("zcgj_expenseitem")) {  //科目分类根据科目分类基础资料过滤
 | 
			
		||||
                int row = beforeF7SelectEvent.getRow();
 | 
			
		||||
                DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity");
 | 
			
		||||
                if (dynamicObjectCollection != null) {
 | 
			
		||||
                    String paymenttype = dynamicObjectCollection.get(row).getString("paymenttype");//支付类型
 | 
			
		||||
                    if("PREPAYMENT".equals(paymenttype)){
 | 
			
		||||
                        QFilter biztypefilter = new QFilter("zcgj_biztype", QCP.equals, "50"); //过滤业务单据为支出财务确认单
 | 
			
		||||
                        //分录过滤
 | 
			
		||||
                        //使用BusinessDataServiceHelper.load查出来的数据,返回的是符合条件的整单,即使只有分录中的某一行符合条件,也会返回整张单包括其他分录行的数据
 | 
			
		||||
                        //使用 QueryServiceHelper.query查出来的数据只会包含符合条件的分录行,不含其他行数据
 | 
			
		||||
                        DynamicObjectCollection accountfeeEntries = QueryServiceHelper.query("zcgj_accountfee",
 | 
			
		||||
                                "zcgj_entryentity.zcgj_fee.number", new QFilter[]{biztypefilter});//费用与科目分类单
 | 
			
		||||
                        List<String> numbers = new ArrayList<>();
 | 
			
		||||
                        if (accountfeeEntries != null) {
 | 
			
		||||
                            for (DynamicObject dynamicObject : accountfeeEntries) {
 | 
			
		||||
                                String zcgjAccounttypeNumber = dynamicObject.getString("zcgj_entryentity.zcgj_fee.number");
 | 
			
		||||
                                if (zcgjAccounttypeNumber != null) {
 | 
			
		||||
                                    numbers.add(zcgjAccounttypeNumber);
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        QFilter qFilter = new QFilter("number", QCP.in, numbers);
 | 
			
		||||
                        ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
 | 
			
		||||
                        formShowParameter.getListFilterParameter().getQFilters().add(qFilter);
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue