Compare commits

...

3 Commits

Author SHA1 Message Date
xuhaihui 0a9727920a 出库单优化 2025-09-04 17:22:51 +08:00
xuhaihui a80d9b9faf 优化收入合同bug 2025-09-04 17:20:23 +08:00
xuhaihui b918afe42b 标记 2025-09-04 17:12:16 +08:00
3 changed files with 144 additions and 2 deletions

View File

@ -0,0 +1,142 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package zcgj.zcdev.zcdev.pr.plugin.form;
import java.util.HashSet;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.list.ListShowParameter;
import kd.bos.orm.query.QFilter;
import kd.ec.basedata.common.enums.ContractStatusEnum;
import kd.ec.basedata.common.enums.PayDirectionEnum;
/**
* 扩展系统标准代码用于优化出库单中合同编码过滤逻辑
*/
public class ContractHelperExt {
private static final String PAYDIRECTION = "paydirection";
private static final String CONTSTATUS = "contstatus";
public ContractHelperExt() {
}
public static void getContractByStatus(String formid, ListShowParameter showParameter, String paydirection) {
QFilter contStatusFilter = getFilter(formid, paydirection);
if (contStatusFilter != null) {
showParameter.getListFilterParameter().getQFilters().add(contStatusFilter);
}
}
public static QFilter getFilter(String formid, String paydirection) {
HashSet contStatusSet;
QFilter contStatusFilter;
QFilter payDirectionFilter;
if (StringUtils.equals(paydirection, PayDirectionEnum.IN.getValue())) {
if (StringUtils.equals(formid, "ec_incomeapply") || StringUtils.equals(formid, "ec_income_register") || StringUtils.equals(formid, "ec_out_invoice") || StringUtils.equals(formid, "ec_in_contfundplan") || StringUtils.equals(formid, "ec_in_finalsettle")) {
contStatusSet = new HashSet(4);
contStatusSet.add(ContractStatusEnum.INDRAFT.getValue());
contStatusSet.add(ContractStatusEnum.INAUDIT.getValue());
contStatusSet.add(ContractStatusEnum.APPROVED.getValue());
if (StringUtils.equals(formid, "ec_in_finalsettle")) {
contStatusSet.add(ContractStatusEnum.CLOSED.getValue());
contStatusSet.add(ContractStatusEnum.OVERSETTLE.getValue());
}
contStatusFilter = new QFilter("contstatus", "not in", contStatusSet);
payDirectionFilter = new QFilter("paydirection", "=", paydirection);
contStatusFilter.and(payDirectionFilter);
return contStatusFilter;
}
if (StringUtils.equals(formid, "ec_in_contract_settle") || StringUtils.equals(formid, "ec_inrevision") || StringUtils.equals(formid, "ec_inclaimbill") || StringUtils.equals(formid, "ec_invisabill") || StringUtils.equals(formid, "ec_clarific") || StringUtils.equals(formid, "ec_in_performrecords") || StringUtils.equals(formid, "ec_incontractmeasure")) {
contStatusSet = new HashSet(6);
contStatusSet.add(ContractStatusEnum.INDRAFT.getValue());
contStatusSet.add(ContractStatusEnum.INAUDIT.getValue());
contStatusSet.add(ContractStatusEnum.APPROVED.getValue());
contStatusSet.add(ContractStatusEnum.PAUSE.getValue());
contStatusSet.add(ContractStatusEnum.RELIEVE.getValue());
contStatusSet.add(ContractStatusEnum.CLOSED.getValue());
contStatusSet.add(ContractStatusEnum.OVERSETTLE.getValue());
contStatusFilter = new QFilter("contstatus", "not in", contStatusSet);
payDirectionFilter = new QFilter("paydirection", "=", paydirection);
contStatusFilter.and(payDirectionFilter);
return contStatusFilter;
}
if (StringUtils.equals(formid, "ec_ecbd_contractboq")) {
contStatusSet = new HashSet(3);
contStatusSet.add(ContractStatusEnum.INDRAFT.getValue());
contStatusSet.add(ContractStatusEnum.INAUDIT.getValue());
contStatusSet.add(ContractStatusEnum.APPROVED.getValue());
contStatusFilter = new QFilter("contstatus", "not in", contStatusSet);
return contStatusFilter;
}
} else if (StringUtils.equals(paydirection, PayDirectionEnum.OUT.getValue())) {
//支出合同
if (!StringUtils.equals(formid, "ec_paymentapply") && !StringUtils.equals(formid, "ec_payment_register") && !StringUtils.equals(formid, "ec_in_invoice") && !StringUtils.equals(formid, "ec_out_contfundplan") && !StringUtils.equals(formid, "ec_out_finalsettle")) {
if (!StringUtils.equals(formid, "ecma_materialinbill") && !StringUtils.equals(formid, "ecma_materialoutbill") && !StringUtils.equals(formid, "ecma_compmatout") && !StringUtils.equals(formid, "ecma_purchaseorderbill") && !StringUtils.equals(formid, "ec_out_contract_settle") && !StringUtils.equals(formid, "ec_outclaimbill") && !StringUtils.equals(formid, "ec_outrevision") && !StringUtils.equals(formid, "ec_out_performrecords") && !StringUtils.equals(formid, "ecma_materialapplybill") && !StringUtils.equals(formid, "ec_outcontractmeasure")) {
return null;
}
contStatusSet = new HashSet(6);
contStatusSet.add(ContractStatusEnum.INDRAFT.getValue());
contStatusSet.add(ContractStatusEnum.INAUDIT.getValue());
contStatusSet.add(ContractStatusEnum.APPROVED.getValue());
contStatusSet.add(ContractStatusEnum.PAUSE.getValue());
contStatusSet.add(ContractStatusEnum.RELIEVE.getValue());
contStatusSet.add(ContractStatusEnum.CLOSED.getValue());
contStatusSet.add(ContractStatusEnum.OVERSETTLE.getValue());
contStatusFilter = new QFilter("contstatus", "not in", contStatusSet);
payDirectionFilter = new QFilter("paydirection", "=", paydirection);
contStatusFilter.and(payDirectionFilter);
QFilter basicTypeFilter;
if (StringUtils.equals(formid, "ecma_materialinbill")) {
basicTypeFilter = new QFilter("conttype.contattr.basictype", "=", "02");
basicTypeFilter.or(new QFilter("conttype.contattr.basictype", "=", "09"));
contStatusFilter.and(basicTypeFilter);
} else if (!StringUtils.equals(formid, "ecma_materialoutbill") && !StringUtils.equals(formid, "ecma_materialapplybill") && !StringUtils.equals(formid, "ecma_compmatout")) {
if (StringUtils.equals(formid, "ecma_purchaseorderbill")) {
basicTypeFilter = new QFilter("contracttype.contattr.basictype", "=", "02");
basicTypeFilter.or("contracttype.contattr.basictype", "=", "09");
contStatusFilter.and(basicTypeFilter);
}
} else {
basicTypeFilter = new QFilter("contracttype.contattr.basictype", "=", "03");
contStatusFilter.and(basicTypeFilter);
}
return contStatusFilter;
}
contStatusSet = new HashSet(4);
contStatusSet.add(ContractStatusEnum.INDRAFT.getValue());
contStatusSet.add(ContractStatusEnum.INAUDIT.getValue());
contStatusSet.add(ContractStatusEnum.APPROVED.getValue());
if (StringUtils.equals(formid, "ec_out_finalsettle")) {
contStatusSet.add(ContractStatusEnum.CLOSED.getValue());
contStatusSet.add(ContractStatusEnum.OVERSETTLE.getValue());
}
if (StringUtils.equals(formid, "ec_paymentapply")) {
contStatusSet.add(ContractStatusEnum.CLOSED.getValue());
}
contStatusFilter = new QFilter("contstatus", "not in", contStatusSet);
payDirectionFilter = new QFilter("paydirection", "=", paydirection);
contStatusFilter.and(payDirectionFilter);
return contStatusFilter;
} else if (StringUtils.equals(formid, "ec_dynamiccontract") || StringUtils.equals(formid, "ec_contract_viewall")) {
contStatusSet = new HashSet(3);
contStatusSet.add(ContractStatusEnum.INDRAFT.getValue());
contStatusSet.add(ContractStatusEnum.INAUDIT.getValue());
contStatusSet.add(ContractStatusEnum.APPROVED.getValue());
contStatusFilter = new QFilter("contstatus", "not in", contStatusSet);
return contStatusFilter;
}
return null;
}
}

View File

@ -1124,7 +1124,7 @@ public class MaterialOutBillEditPluginExt extends AbstractEcmaBillPlugin impleme
formShowParameter.getListFilterParameter().getQFilters().add(new QFilter("project", "=", project.getPkValue()));
}
ContractHelper.getContractByStatus("ecma_materialoutbill", formShowParameter, PayDirectionEnum.OUT.getValue());
ContractHelperExt.getContractByStatus("ecma_materialoutbill", formShowParameter, PayDirectionEnum.OUT.getValue());
}
public void closedCallBack(ClosedCallBackEvent closedcallbackevent) {

View File

@ -16,7 +16,7 @@ public class ContractPublicValidator extends AbstractValidator {
if (dataEntity!=null){
DynamicObject dynamicObject = dataEntity.getDataEntity();
String zcgjPricetype = dynamicObject.getString("zcgj_pricetype");
if (zcgjPricetype.equals("gddj")){
if (zcgjPricetype != null && zcgjPricetype.equals("gddj")) {
DynamicObjectCollection modelEntries = dynamicObject.getDynamicObjectCollection("listmodelentry");
for (DynamicObject object : modelEntries) {
DynamicObjectCollection listingEntries = object.getDynamicObjectCollection("sublistentry");