Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
xuhaihui 2025-11-03 13:47:41 +08:00
commit cbbcdbaaa7
9 changed files with 460 additions and 323 deletions

View File

@ -51,6 +51,7 @@ public class CasPaybillToEcFundPlanApplyOp extends AbstractOperationServicePlugI
for (DynamicObject dataEntity : dataEntities) {
long id = dataEntity.getLong("id");
// idList.add(id);
//根据付款处理单获取资金计划申请单
Map<String, HashSet<Long>> sourceBills = BFTrackerServiceHelper.findSourceBills("cas_paybill", new Long[]{id});
HashSet<Long> zcgjEcFundingplanapply = sourceBills.get("zcgj_ec_fundingplanapply");
if(zcgjEcFundingplanapply != null && !zcgjEcFundingplanapply.isEmpty()) {
@ -59,10 +60,14 @@ public class CasPaybillToEcFundPlanApplyOp extends AbstractOperationServicePlugI
//计算实际付款金额
DynamicObject paybill = BusinessDataServiceHelper.loadSingle(id, "cas_paybill");
DynamicObject settletype = paybill.getDynamicObject("settletype");
String typeString = "";
if(settletype!=null){
int zcgjZjjhhdseq = paybill.getInt("zcgj_zjjhhdseq");
long zcgjZjjhhdid = paybill.getLong("zcgj_zjjhhdid");
String billstatus = paybill.getString("billstatus");
if(zcgjZjjhhdid !=0 && zcgjZjjhhdseq!=0 && "D".equals(billstatus)){
// String typeString = "";
/*if(settletype!=null){
String type = settletype.getString("number");
if("002".equals(type) || "JSFS04".equals(type)){ //司库-对公/电汇
if("002".equals(type) || "JSFS01".equals(type) || "JSFS04".equals(type)){ //司库-对公/电汇
//现金
typeString = "XJ";
}else if("JSFS07".equals(type)){ //银行承兑汇票
@ -78,45 +83,49 @@ public class CasPaybillToEcFundPlanApplyOp extends AbstractOperationServicePlugI
//其他金融产品
typeString = "QTJRCP";
}
}
DynamicObjectCollection entryCpllection = paybill.getDynamicObjectCollection("entry");
BigDecimal allActamt = BigDecimal.ZERO;
for (DynamicObject entry : entryCpllection) {
BigDecimal val = entry.getBigDecimal("e_actamt");
BigDecimal eActamt = val !=null ?val:BigDecimal.ZERO;//获取实付金额
allActamt = allActamt.add(eActamt);
}
}*/
DynamicObjectCollection entryCpllection = paybill.getDynamicObjectCollection("entry");
BigDecimal allActamt = BigDecimal.ZERO;
for (DynamicObject entry : entryCpllection) {
BigDecimal val = entry.getBigDecimal("e_actamt");
BigDecimal eActamt = val !=null ?val:BigDecimal.ZERO;//获取实付金额
allActamt = allActamt.add(eActamt);
}
//读取资金计划申请
DynamicObject fundingplanapply = BusinessDataServiceHelper.loadSingle(dataId, "zcgj_ec_fundingplanapply");
DynamicObjectCollection zcgjFinApprovedAmount = fundingplanapply.getDynamicObjectCollection("zcgj_fin_approved_amount");
for (DynamicObject dynamicObject : zcgjFinApprovedAmount) {
String zcgjSetttype = dynamicObject.getString("zcgj_setttype");
if(typeString.equals(zcgjSetttype)){
BigDecimal zcgjAmountpaid = dynamicObject.getBigDecimal("zcgj_amountpaid");
BigDecimal zcgjAmountRecommended = zcgjAmountpaid !=null ? zcgjAmountpaid:BigDecimal.ZERO;//实际付款金额
BigDecimal amountrecommended = BigDecimal.ZERO;
if(!isPay){
amountrecommended = allActamt;
allActamt = allActamt.multiply(BigDecimal.ZERO.subtract(BigDecimal.ONE));//取相反数
}
allActamt = allActamt.add(zcgjAmountRecommended);
dynamicObject.set("zcgj_amountpaid", allActamt);//实付金额
dynamicObject.set("zcgj_amount_inpayment",amountrecommended);//
//读取资金计划申请
DynamicObject fundingplanapply = BusinessDataServiceHelper.loadSingle(dataId, "zcgj_ec_fundingplanapply");
DynamicObjectCollection zcgjFinApprovedAmount = fundingplanapply.getDynamicObjectCollection("zcgj_fin_approved_amount");
for (DynamicObject dynamicObject : zcgjFinApprovedAmount) {
String zcgjSetttype = dynamicObject.getString("zcgj_setttype");
int entrtySeq = dynamicObject.getInt("seq");
long entrtyId = dynamicObject.getLong("id");
if(entrtyId == zcgjZjjhhdid){
//if(typeString.equals(zcgjSetttype)){
BigDecimal zcgjAmountpaid = dynamicObject.getBigDecimal("zcgj_amountpaid");
BigDecimal zcgjAmountRecommended = zcgjAmountpaid !=null ? zcgjAmountpaid:BigDecimal.ZERO;//实际付款金额
// BigDecimal amountrecommended = BigDecimal.ZERO;
BigDecimal amountrecommended = dynamicObject.getBigDecimal("zcgj_amount_inpayment");
if(!isPay){
allActamt = allActamt.multiply(BigDecimal.ZERO.subtract(BigDecimal.ONE));//取相反数
}
//zcgj_amount_remaining = zcgj_hdamount - zcgj_amount_inpayment - zcgj_amountpaid
//剩余待拨付金额 = 财务核定金额 - 付款处理中金额 - 实付金额
BigDecimal hdamount = dynamicObject.getBigDecimal("zcgj_hdamount");
if(hdamount !=null && isPay){
BigDecimal subtract = hdamount.subtract(amountrecommended).subtract(allActamt);
dynamicObject.set("zcgj_amount_remaining",subtract);
}else if(hdamount != null){
BigDecimal subtract = hdamount.add(amountrecommended).subtract(allActamt);//实付金额已经成为相反数
dynamicObject.set("zcgj_amount_remaining",subtract);
amountrecommended = amountrecommended.subtract(allActamt);
allActamt = allActamt.add(zcgjAmountRecommended);
dynamicObject.set("zcgj_amountpaid", allActamt);//实付金额
dynamicObject.set("zcgj_amount_inpayment",amountrecommended);//付款处理中金额
//zcgj_amount_remaining = zcgj_hdamount - zcgj_amount_inpayment - zcgj_amountpaid
//剩余待拨付金额 = 财务核定金额(不含代付) - 付款处理中金额 - 实付金额
BigDecimal hdamount = dynamicObject.getBigDecimal("zcgj_hdamount");
if(hdamount !=null){
BigDecimal subtract = hdamount.subtract(amountrecommended).subtract(allActamt);
dynamicObject.set("zcgj_amount_remaining",subtract);
}
}
}
updateData.add(fundingplanapply);
}
updateData.add(fundingplanapply);
}
}
if(!updateData.isEmpty()){

View File

@ -1,5 +1,6 @@
package zcgj.zcdev.zcdev.fs.plugin.other;
import com.google.common.collect.Sets;
import kd.bos.coderule.api.CodeRuleInfo;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
@ -9,10 +10,8 @@ import kd.bos.entity.botp.plugin.args.AfterConvertEventArgs;
import kd.bos.servicehelper.coderule.CodeRuleServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
* 入库单下推无合同付款申请单botp插件
@ -22,7 +21,7 @@ public class MaterialinbillToNoContractBotpPlugin extends AbstractConvertPlugIn
@Override
public void afterConvert(AfterConvertEventArgs e) {
super.afterConvert(e);
// 获取已生成的资产卡片
// 获取已生成的对公报销单
ExtendedDataEntity[] billDataEntitys = e.getTargetExtDataEntitySet().FindByEntityKey("er_publicreimbursebill");
// 构造 ExtendedDataEntity 时需要的索引值
@ -47,8 +46,11 @@ public class MaterialinbillToNoContractBotpPlugin extends AbstractConvertPlugIn
DynamicObjectCollection expenseentryentity = dataEntity.getDynamicObjectCollection("expenseentryentity");
for (DynamicObject expenseentry : expenseentryentity) {
String invoiceno = expenseentry.getString("invoiceno_entry");
Set<String> invoiceNos = Sets.newHashSet((Iterable)Arrays.stream(invoiceno.split(",")).collect(Collectors.toSet()));
long aLong = expenseentry.getLong("id");
expensEntryMap.put(invoiceno, aLong);
for (String invoiceNo : invoiceNos) {
expensEntryMap.put(invoiceNo, aLong);
}
}
//发票明细分录

View File

@ -43,7 +43,6 @@ import kd.ec.basedata.common.invoicecloud.InvoiceCloudConfigHelper;
import kd.ec.basedata.common.invoicecloud.InvoiceDataHandleHelper;
import kd.ec.basedata.common.invoicecloud.bean.InvoiceItemVO;
import kd.ec.basedata.common.invoicecloud.bean.InvoiceVO;
import kd.ec.basedata.common.invoicecloud.enumeration.InvoiceTypeEnum;
import kd.ec.basedata.common.utils.HttpURLConnectionHelper;
import kd.ec.basedata.common.utils.MD5;
import kd.ec.basedata.common.utils.TextHelper;
@ -53,7 +52,11 @@ import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.JSONUtils;
import net.sf.json.util.PropertySetStrategy;
import zcgj.zcdev.zcdev.pr.utils.InvoiceTypeEnum;
/**
* 财务发票转换工程发票
*/
public class CustomInvoiceDataHandleHelper extends InvoiceDataHandleHelper {
private static final Log log = LogFactory.getLog(CustomInvoiceDataHandleHelper.class);
@ -111,7 +114,9 @@ public class CustomInvoiceDataHandleHelper extends InvoiceDataHandleHelper {
log.info("CustomInvoiceCloudImportListPlugin:设置发票的唯一 ID:"+id);
invoice.set("serialno", invoiceVO.getSerialNo());//设置发票序列号
log.info("CustomInvoiceCloudImportListPlugin:设置发票序列号 serialno:"+invoiceVO.getSerialNo());
log.info("CustomInvoiceCloudImportListPlugin:获取发票类型 invoiceType:"+invoiceVO.getInvoiceType());
InvoiceTypeEnum invoiceTypeEnum = InvoiceTypeEnum.getEnumByValue(invoiceVO.getInvoiceType());
log.info("CustomInvoiceCloudImportListPlugin:获取发票类型InvoiceTypeEnum InvoiceTypeEnum:"+invoiceTypeEnum.getName()+" "+invoiceTypeEnum.getValue());
if (invoiceTypeEnum != null) {
QFilter invoiceTypeFilter = new QFilter("name", "=", invoiceTypeEnum.getName());
DynamicObject invoiceType = BusinessDataServiceHelper.loadSingle("ec_invoice_type", "id", new QFilter[]{invoiceTypeFilter});

View File

@ -62,24 +62,28 @@ public class FundingplanapplyAccountBalancePlugin extends AbstractBillPlugIn imp
DynamicObjectCollection infundproject = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_infundproject_entry");
for (int i = 0; i < infundproject.size(); i++) {
MulBasedataDynamicObjectCollection dynamicObjectCollection = (MulBasedataDynamicObjectCollection)infundproject.get(i).getDynamicObjectCollection("zcgj_in_custom");
if(dynamicObjectCollection!=null && !dynamicObjectCollection.isEmpty()){
customerBalance(i,dynamicObjectCollection);
DynamicObjectCollection dynamicObjectCollectionObj = infundproject.get(i).getDynamicObjectCollection("zcgj_in_custom");
if(dynamicObjectCollectionObj != null){
if(!dynamicObjectCollectionObj.isEmpty()){
customerBalance(i,dynamicObjectCollectionObj);
}
}
}
DynamicObjectCollection outfundproject = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_outfundproject_entry");
for (int i = 0; i < outfundproject.size(); i++) {
MulBasedataDynamicObjectCollection dynamicObjectCollection = (MulBasedataDynamicObjectCollection)outfundproject.get(i).getDynamicObjectCollection("zcgj_out_supplier");
if(dynamicObjectCollection!=null && !dynamicObjectCollection.isEmpty()){
supplierBalance(i,dynamicObjectCollection);
DynamicObjectCollection dynamicObjectCollectionObj = outfundproject.get(i).getDynamicObjectCollection("zcgj_out_supplier");
if(dynamicObjectCollectionObj != null){
if(!dynamicObjectCollectionObj.isEmpty()){
supplierBalance(i,dynamicObjectCollectionObj);
}
}
}
}
}
public void customerBalance(int rowIndex, MulBasedataDynamicObjectCollection customs){
public void customerBalance(int rowIndex, DynamicObjectCollection customs){
if(customs!=null){
DynamicObject org = (DynamicObject)this.getModel().getValue("zcgj_org");
if(org == null){
@ -95,55 +99,56 @@ public class FundingplanapplyAccountBalancePlugin extends AbstractBillPlugIn imp
if(period == null){
//this.getView().showErrMessage("请选择期间!");
this.getView().showErrorNotification("请选择期间!");
}
balanceQueryParamApi.setPeriodNumber(period.getString("number")); //
List<String> groupBy = new ArrayList<>();
}else{
balanceQueryParamApi.setPeriodNumber(period.getString("number")); //
List<String> groupBy = new ArrayList<>();
Map<String, List<Map<String, String>>> accountAssgrp = new HashMap<>();
List<Map<String, String>> li = new ArrayList<>();
for (DynamicObject custom : customs) {
Map<String, String> map1 = new HashMap<>();
DynamicObject basedataObj = custom.getDynamicObject("fbasedataid");
DynamicObject customer = BusinessDataServiceHelper.loadSingle( basedataObj.getPkValue(), "bd_customer");
map1.put("0001", customer.getString("number"));
li.add(map1);
}
accountAssgrp.put("1122", li);
balanceQueryParamApi.setAccountAssgrp(accountAssgrp);
groupBy.add("0001");
groupBy.add("account");
Gson gson = new Gson();
String json = gson.toJson(balanceQueryParamApi);
Map<String, Object> params = gson.fromJson(json,
new TypeToken<Map<String, Object>>() {
}.getType());
OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params);
if (balanceData.isStatus()) {
String data = (String) balanceData.getData();
Type listType = new TypeToken<List<AccountRecord>>() {
}.getType();
List<AccountRecord> records = gson.fromJson(data, listType);
BigDecimal totalbeginlocal = BigDecimal.ZERO;
BigDecimal totalendlocal = BigDecimal.ZERO;
BigDecimal totayeardebitfor = BigDecimal.ZERO;
BigDecimal totalyearcreditfor = BigDecimal.ZERO;
for (AccountRecord record : records) {
totalbeginlocal = totalbeginlocal.add(record.getBeginlocal());//期初本位币金额
totalendlocal = totalendlocal.add(record.getEndlocal());//期初本位币金额
totayeardebitfor = totayeardebitfor.add(record.getYeardebitfor());//yeardebitfor
totalyearcreditfor = totalyearcreditfor.add(record.getYearcreditfor());//yearcreditfor
Map<String, List<Map<String, String>>> accountAssgrp = new HashMap<>();
List<Map<String, String>> li = new ArrayList<>();
for (DynamicObject custom : customs) {
Map<String, String> map1 = new HashMap<>();
DynamicObject basedataObj = custom.getDynamicObject("fbasedataid");
DynamicObject customer = BusinessDataServiceHelper.loadSingle( basedataObj.getPkValue(), "bd_customer");
map1.put("0001", customer.getString("number"));
li.add(map1);
}
accountAssgrp.put("1122", li);
balanceQueryParamApi.setAccountAssgrp(accountAssgrp);
groupBy.add("0001");
groupBy.add("account");
Gson gson = new Gson();
String json = gson.toJson(balanceQueryParamApi);
Map<String, Object> params = gson.fromJson(json,
new TypeToken<Map<String, Object>>() {
}.getType());
OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params);
if (balanceData.isStatus()) {
String data = (String) balanceData.getData();
Type listType = new TypeToken<List<AccountRecord>>() {
}.getType();
List<AccountRecord> records = gson.fromJson(data, listType);
BigDecimal totalbeginlocal = BigDecimal.ZERO;
BigDecimal totalendlocal = BigDecimal.ZERO;
BigDecimal totayeardebitfor = BigDecimal.ZERO;
BigDecimal totalyearcreditfor = BigDecimal.ZERO;
for (AccountRecord record : records) {
totalbeginlocal = totalbeginlocal.add(record.getBeginlocal());//期初本位币金额
totalendlocal = totalendlocal.add(record.getEndlocal());//期初本位币金额
totayeardebitfor = totayeardebitfor.add(record.getYeardebitfor());//yeardebitfor
totalyearcreditfor = totalyearcreditfor.add(record.getYearcreditfor());//yearcreditfor
}
DynamicObjectCollection zcgjFinApprovedAmount = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_infundproject_entry");
DynamicObject dynamicObject = zcgjFinApprovedAmount.get(rowIndex);
//年初余额 = 期末余额-本年累计借方+本年累计贷方
BigDecimal beginningbalanceofyear =totalendlocal.subtract(totayeardebitfor).add(totalyearcreditfor);
dynamicObject.set("zcgj_iinitialreceivable",beginningbalanceofyear);//年初余额取科目余额表年初数
dynamicObject.set("zcgj_monthbeginreceivable",totalbeginlocal);//月初应收余额
dynamicObject.set("zcgj_ytdoutputvalue",totayeardebitfor);//本年累计结算-借方
dynamicObject.set("zcgj_ytdpaymentreceived",totalyearcreditfor);//本年累计回款-贷方
this.getView().updateView("zcgj_infundproject_entry");
}
DynamicObjectCollection zcgjFinApprovedAmount = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_infundproject_entry");
DynamicObject dynamicObject = zcgjFinApprovedAmount.get(rowIndex);
//年初余额 = 期末余额-本年累计借方+本年累计贷方
BigDecimal beginningbalanceofyear =totalendlocal.subtract(totayeardebitfor).add(totalyearcreditfor);
dynamicObject.set("zcgj_iinitialreceivable",beginningbalanceofyear);//年初余额取科目余额表年初数
dynamicObject.set("zcgj_monthbeginreceivable",totalbeginlocal);//月初应收余额
dynamicObject.set("zcgj_ytdoutputvalue",totayeardebitfor);//本年累计结算-借方
dynamicObject.set("zcgj_ytdpaymentreceived",totalyearcreditfor);//本年累计回款-贷方
this.getView().updateView("zcgj_infundproject_entry");
}
}
@ -158,7 +163,7 @@ public class FundingplanapplyAccountBalancePlugin extends AbstractBillPlugIn imp
}
}
public void supplierBalance(int rowIndex, MulBasedataDynamicObjectCollection suppliers){
public void supplierBalance(int rowIndex, DynamicObjectCollection suppliers){
if(suppliers!=null){
DynamicObject org = (DynamicObject)this.getModel().getValue("zcgj_org");
if(org == null){
@ -174,55 +179,56 @@ public class FundingplanapplyAccountBalancePlugin extends AbstractBillPlugIn imp
if(period == null){
//this.getView().showErrMessage("请选择期间!");
this.getView().showErrorNotification("请选择期间!");
}
balanceQueryParamApi.setPeriodNumber(period.getString("number")); //
List<String> groupBy = new ArrayList<>();
}else{
balanceQueryParamApi.setPeriodNumber(period.getString("number")); //
List<String> groupBy = new ArrayList<>();
Map<String, List<Map<String, String>>> accountAssgrp = new HashMap<>();
List<Map<String, String>> li = new ArrayList<>();
for (DynamicObject supplier : suppliers) {
Map<String, String> map1 = new HashMap<>();
DynamicObject basedataObj = supplier.getDynamicObject("fbasedataid");
DynamicObject customer = BusinessDataServiceHelper.loadSingle( basedataObj.getPkValue(), "bd_supplier");
map1.put("0005", customer.getString("number"));
li.add(map1);
}
accountAssgrp.put("2202", li);
balanceQueryParamApi.setAccountAssgrp(accountAssgrp);
groupBy.add("0005");
groupBy.add("account");
Gson gson = new Gson();
String json = gson.toJson(balanceQueryParamApi);
Map<String, Object> params = gson.fromJson(json,
new TypeToken<Map<String, Object>>() {
}.getType());
OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params);
if (balanceData.isStatus()) {
String data = (String) balanceData.getData();
Type listType = new TypeToken<List<AccountRecord>>() {
}.getType();
List<AccountRecord> records = gson.fromJson(data, listType);
BigDecimal totalbeginlocal = BigDecimal.ZERO;
BigDecimal totalendlocal = BigDecimal.ZERO;
BigDecimal totayeardebitfor = BigDecimal.ZERO;
BigDecimal totalyearcreditfor = BigDecimal.ZERO;
for (AccountRecord record : records) {
totalbeginlocal = totalbeginlocal.add(record.getBeginlocal());//期初本位币金额
totalendlocal = totalendlocal.add(record.getEndlocal());//期初本位币金额
totayeardebitfor = totayeardebitfor.add(record.getYeardebitfor());//yeardebitfor
totalyearcreditfor = totalyearcreditfor.add(record.getYearcreditfor());//yearcreditfor
Map<String, List<Map<String, String>>> accountAssgrp = new HashMap<>();
List<Map<String, String>> li = new ArrayList<>();
for (DynamicObject supplier : suppliers) {
Map<String, String> map1 = new HashMap<>();
DynamicObject basedataObj = supplier.getDynamicObject("fbasedataid");
DynamicObject customer = BusinessDataServiceHelper.loadSingle( basedataObj.getPkValue(), "bd_supplier");
map1.put("0005", customer.getString("number"));
li.add(map1);
}
accountAssgrp.put("2202", li);
balanceQueryParamApi.setAccountAssgrp(accountAssgrp);
groupBy.add("0005");
groupBy.add("account");
Gson gson = new Gson();
String json = gson.toJson(balanceQueryParamApi);
Map<String, Object> params = gson.fromJson(json,
new TypeToken<Map<String, Object>>() {
}.getType());
OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params);
if (balanceData.isStatus()) {
String data = (String) balanceData.getData();
Type listType = new TypeToken<List<AccountRecord>>() {
}.getType();
List<AccountRecord> records = gson.fromJson(data, listType);
BigDecimal totalbeginlocal = BigDecimal.ZERO;
BigDecimal totalendlocal = BigDecimal.ZERO;
BigDecimal totayeardebitfor = BigDecimal.ZERO;
BigDecimal totalyearcreditfor = BigDecimal.ZERO;
for (AccountRecord record : records) {
totalbeginlocal = totalbeginlocal.add(record.getBeginlocal());//期初本位币金额
totalendlocal = totalendlocal.add(record.getEndlocal());//期初本位币金额
totayeardebitfor = totayeardebitfor.add(record.getYeardebitfor());//yeardebitfor
totalyearcreditfor = totalyearcreditfor.add(record.getYearcreditfor());//yearcreditfor
}
DynamicObjectCollection zcgjFinApprovedAmount = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_outfundproject_entry");
DynamicObject dynamicObject = zcgjFinApprovedAmount.get(rowIndex);
//年初余额 = 期末余额-本年累计借方+本年累计贷方
BigDecimal beginningbalanceofyear =totalendlocal.subtract(totalyearcreditfor).add(totayeardebitfor);
dynamicObject.set("zcgj_openingpayable",beginningbalanceofyear);//年初余额取科目余额表年初数
dynamicObject.set("zcgj_monthbeginpayable",totalbeginlocal);//月初应付余额
dynamicObject.set("zcgj_ytdtotalpayment",totayeardebitfor);//本年累计付款-借方
dynamicObject.set("zcgj_ytdnetsettlement",totalyearcreditfor);//本年累计结算-贷方
this.getView().updateView("zcgj_outfundproject_entry");
}
DynamicObjectCollection zcgjFinApprovedAmount = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_outfundproject_entry");
DynamicObject dynamicObject = zcgjFinApprovedAmount.get(rowIndex);
//年初余额 = 期末余额-本年累计借方+本年累计贷方
BigDecimal beginningbalanceofyear =totalendlocal.subtract(totalyearcreditfor).add(totayeardebitfor);
dynamicObject.set("zcgj_openingpayable",beginningbalanceofyear);//年初余额取科目余额表年初数
dynamicObject.set("zcgj_monthbeginpayable",totalbeginlocal);//月初应付余额
dynamicObject.set("zcgj_ytdtotalpayment",totayeardebitfor);//本年累计付款-借方
dynamicObject.set("zcgj_ytdnetsettlement",totalyearcreditfor);//本年累计结算-贷方
this.getView().updateView("zcgj_outfundproject_entry");
}
}
}else{
@ -258,46 +264,47 @@ public class FundingplanapplyAccountBalancePlugin extends AbstractBillPlugIn imp
if(period == null){
//this.getView().showErrMessage("请选择期间!");
this.getView().showErrorNotification("请选择期间!");
}
balanceQueryParamApi.setPeriodNumber(period.getString("number")); //
List<String> groupBy = new ArrayList<>();
Map<String, List<Map<String, String>>> accountAssgrp = new HashMap<>();
List<Map<String, String>> li = new ArrayList<>();
accountAssgrp.put("1001", li); //现金
accountAssgrp.put("1002", li); //现金
// accountAssgrp.put("11260101", li); //银行承兑
//accountAssgrp.put("11260301", li); //供应链
balanceQueryParamApi.setAccountAssgrp(accountAssgrp);
//groupBy.add("0005");
groupBy.add("account");
Gson gson = new Gson();
String json = gson.toJson(balanceQueryParamApi);
Map<String, Object> params = gson.fromJson(json,
new TypeToken<Map<String, Object>>() {
}.getType());
OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params);
if (balanceData.isStatus()) {
String data = (String) balanceData.getData();
Type listType = new TypeToken<List<AccountRecord>>() {
}.getType();
List<AccountRecord> records = gson.fromJson(data, listType);
BigDecimal totalbeginlocal = BigDecimal.ZERO;
for (AccountRecord record : records) {
totalbeginlocal = totalbeginlocal.add(record.getBeginlocal());//期初本位币金额
}
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
DynamicObject dynamicObject = fundplyentry.get(0);
dynamicObject.set("zcgj_cashamt",totalbeginlocal);//现金
this.getView().updateView("zcgj_fundplyentry");
}else{
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
DynamicObject dynamicObject = fundplyentry.get(0);
dynamicObject.set("zcgj_cashamt",BigDecimal.ZERO);//现金
this.getView().updateView("zcgj_fundplyentry");
balanceQueryParamApi.setPeriodNumber(period.getString("number")); //
List<String> groupBy = new ArrayList<>();
Map<String, List<Map<String, String>>> accountAssgrp = new HashMap<>();
List<Map<String, String>> li = new ArrayList<>();
accountAssgrp.put("1001", li); //现金
accountAssgrp.put("1002", li); //现金
// accountAssgrp.put("11260101", li); //银行承兑
//accountAssgrp.put("11260301", li); //供应链
balanceQueryParamApi.setAccountAssgrp(accountAssgrp);
//groupBy.add("0005");
groupBy.add("account");
Gson gson = new Gson();
String json = gson.toJson(balanceQueryParamApi);
Map<String, Object> params = gson.fromJson(json,
new TypeToken<Map<String, Object>>() {
}.getType());
OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params);
if (balanceData.isStatus()) {
String data = (String) balanceData.getData();
Type listType = new TypeToken<List<AccountRecord>>() {
}.getType();
List<AccountRecord> records = gson.fromJson(data, listType);
BigDecimal totalbeginlocal = BigDecimal.ZERO;
for (AccountRecord record : records) {
totalbeginlocal = totalbeginlocal.add(record.getBeginlocal());//期初本位币金额
}
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
DynamicObject dynamicObject = fundplyentry.get(0);
dynamicObject.set("zcgj_cashamt",totalbeginlocal);//现金
this.getView().updateView("zcgj_fundplyentry");
}else{
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
DynamicObject dynamicObject = fundplyentry.get(0);
dynamicObject.set("zcgj_cashamt",BigDecimal.ZERO);//现金
this.getView().updateView("zcgj_fundplyentry");
}
}
}
}
@ -317,45 +324,46 @@ public class FundingplanapplyAccountBalancePlugin extends AbstractBillPlugIn imp
if(period == null){
//this.getView().showErrMessage("请选择期间!");
this.getView().showErrorNotification("请选择期间!");
}
balanceQueryParamApi.setPeriodNumber(period.getString("number")); //
List<String> groupBy = new ArrayList<>();
Map<String, List<Map<String, String>>> accountAssgrp = new HashMap<>();
List<Map<String, String>> li = new ArrayList<>();
//accountAssgrp.put("1001", li); //现金
//accountAssgrp.put("1002", li); //现金
accountAssgrp.put("11260101", li); //银行承兑
//accountAssgrp.put("11260301", li); //供应链
balanceQueryParamApi.setAccountAssgrp(accountAssgrp);
//groupBy.add("0005");
groupBy.add("account");
Gson gson = new Gson();
String json = gson.toJson(balanceQueryParamApi);
Map<String, Object> params = gson.fromJson(json,
new TypeToken<Map<String, Object>>() {
}.getType());
OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params);
if (balanceData.isStatus()) {
String data = (String) balanceData.getData();
Type listType = new TypeToken<List<AccountRecord>>() {
}.getType();
List<AccountRecord> records = gson.fromJson(data, listType);
BigDecimal totalbeginlocal = BigDecimal.ZERO;
for (AccountRecord record : records) {
totalbeginlocal = totalbeginlocal.add(record.getBeginlocal());//期初本位币金额
}
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
DynamicObject dynamicObject = fundplyentry.get(0);
dynamicObject.set("zcgj_bankamt",totalbeginlocal);//银行承兑
}else{
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
DynamicObject dynamicObject = fundplyentry.get(0);
dynamicObject.set("zcgj_bankamt",BigDecimal.ZERO);//银行承兑
this.getView().updateView("zcgj_fundplyentry");
balanceQueryParamApi.setPeriodNumber(period.getString("number")); //
List<String> groupBy = new ArrayList<>();
Map<String, List<Map<String, String>>> accountAssgrp = new HashMap<>();
List<Map<String, String>> li = new ArrayList<>();
//accountAssgrp.put("1001", li); //现金
//accountAssgrp.put("1002", li); //现金
accountAssgrp.put("11260101", li); //银行承兑
//accountAssgrp.put("11260301", li); //供应链
balanceQueryParamApi.setAccountAssgrp(accountAssgrp);
//groupBy.add("0005");
groupBy.add("account");
Gson gson = new Gson();
String json = gson.toJson(balanceQueryParamApi);
Map<String, Object> params = gson.fromJson(json,
new TypeToken<Map<String, Object>>() {
}.getType());
OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params);
if (balanceData.isStatus()) {
String data = (String) balanceData.getData();
Type listType = new TypeToken<List<AccountRecord>>() {
}.getType();
List<AccountRecord> records = gson.fromJson(data, listType);
BigDecimal totalbeginlocal = BigDecimal.ZERO;
for (AccountRecord record : records) {
totalbeginlocal = totalbeginlocal.add(record.getBeginlocal());//期初本位币金额
}
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
DynamicObject dynamicObject = fundplyentry.get(0);
dynamicObject.set("zcgj_bankamt",totalbeginlocal);//银行承兑
}else{
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
DynamicObject dynamicObject = fundplyentry.get(0);
dynamicObject.set("zcgj_bankamt",BigDecimal.ZERO);//银行承兑
this.getView().updateView("zcgj_fundplyentry");
}
}
}
@ -376,45 +384,46 @@ public class FundingplanapplyAccountBalancePlugin extends AbstractBillPlugIn imp
if(period == null){
//this.getView().showErrMessage("请选择期间!");
this.getView().showErrorNotification("请选择期间!");
}
balanceQueryParamApi.setPeriodNumber(period.getString("number")); //
List<String> groupBy = new ArrayList<>();
Map<String, List<Map<String, String>>> accountAssgrp = new HashMap<>();
List<Map<String, String>> li = new ArrayList<>();
//accountAssgrp.put("1001", li); //现金
//accountAssgrp.put("1002", li); //现金
//accountAssgrp.put("11260101", li); //银行承兑
accountAssgrp.put("11260301", li); //供应链
balanceQueryParamApi.setAccountAssgrp(accountAssgrp);
//groupBy.add("0005");
groupBy.add("account");
Gson gson = new Gson();
String json = gson.toJson(balanceQueryParamApi);
Map<String, Object> params = gson.fromJson(json,
new TypeToken<Map<String, Object>>() {
}.getType());
OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params);
if (balanceData.isStatus()) {
String data = (String) balanceData.getData();
Type listType = new TypeToken<List<AccountRecord>>() {
}.getType();
List<AccountRecord> records = gson.fromJson(data, listType);
BigDecimal totalbeginlocal = BigDecimal.ZERO;
for (AccountRecord record : records) {
totalbeginlocal = totalbeginlocal.add(record.getBeginlocal());//期初本位币金额
}
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
DynamicObject dynamicObject = fundplyentry.get(0);
dynamicObject.set("zcgj_supplyamt",totalbeginlocal);//供应链
}else{
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
DynamicObject dynamicObject = fundplyentry.get(0);
dynamicObject.set("zcgj_supplyamt",BigDecimal.ZERO);//供应链
this.getView().updateView("zcgj_fundplyentry");
balanceQueryParamApi.setPeriodNumber(period.getString("number")); //
List<String> groupBy = new ArrayList<>();
Map<String, List<Map<String, String>>> accountAssgrp = new HashMap<>();
List<Map<String, String>> li = new ArrayList<>();
//accountAssgrp.put("1001", li); //现金
//accountAssgrp.put("1002", li); //现金
//accountAssgrp.put("11260101", li); //银行承兑
accountAssgrp.put("11260301", li); //供应链
balanceQueryParamApi.setAccountAssgrp(accountAssgrp);
//groupBy.add("0005");
groupBy.add("account");
Gson gson = new Gson();
String json = gson.toJson(balanceQueryParamApi);
Map<String, Object> params = gson.fromJson(json,
new TypeToken<Map<String, Object>>() {
}.getType());
OpenApiResult balanceData = OpenApiSdkUtil.invoke("/v2/gl/getBalanceApi", params);
if (balanceData.isStatus()) {
String data = (String) balanceData.getData();
Type listType = new TypeToken<List<AccountRecord>>() {
}.getType();
List<AccountRecord> records = gson.fromJson(data, listType);
BigDecimal totalbeginlocal = BigDecimal.ZERO;
for (AccountRecord record : records) {
totalbeginlocal = totalbeginlocal.add(record.getBeginlocal());//期初本位币金额
}
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
DynamicObject dynamicObject = fundplyentry.get(0);
dynamicObject.set("zcgj_supplyamt",totalbeginlocal);//供应链
}else{
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
DynamicObject dynamicObject = fundplyentry.get(0);
dynamicObject.set("zcgj_supplyamt",BigDecimal.ZERO);//供应链
this.getView().updateView("zcgj_fundplyentry");
}
}
}
}

View File

@ -65,7 +65,7 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin
//设置期间
carryCurrentPeriodAndDate();
//初始化值
initData(org);
initData(org,null);
}
//获取登录人的主职部门用户的非兼职部门就是主职部门
@ -103,7 +103,7 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin
/**
* 自动带入 今年最新的 年初应收余额年初应付余额
*/
public void initData(DynamicObject org){
public void initData(DynamicObject org,DynamicObject periodParam){
int year = LocalDate.now().getYear();
List<QFilter> searchFilterList = new ArrayList<>();
@ -210,9 +210,20 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin
this.getView().updateView("zcgj_infundlastentry");
}
BigDecimal cashamtAll = BigDecimal.ZERO;
BigDecimal bankamtAll = BigDecimal.ZERO;
BigDecimal businessamtAll = BigDecimal.ZERO;
BigDecimal supplyamtAll = BigDecimal.ZERO;
BigDecimal otheramtAll = BigDecimal.ZERO;
BigDecimal totalamtAll = BigDecimal.ZERO;
Object periodObj = this.getModel().getValue("zcgj_period");
if(periodObj!=null){
DynamicObject period = (DynamicObject) periodObj;
if(periodObj!=null || periodParam !=null){
DynamicObject period = null;
if(periodParam!=null){
period = periodParam;
}else{
period = (DynamicObject) periodObj;
}
List<QFilter> searchFilterListzj = new ArrayList<>();
searchFilterListzj.add(new QFilter("zcgj_org", QCP.equals, org.getLong("id")));
searchFilterListzj.add( new QFilter("zcgj_period.number", QCP.equals, period.getString("number")));
@ -223,15 +234,9 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin
",zcgj_fundplyentry.zcgj_totalamt " +
",createtime",
searchFilterListzj.toArray(new QFilter[]{}), "createtime desc");
if(loadzj!=null && loadzj.length>0){
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
BigDecimal cashamtAll = BigDecimal.ZERO;
BigDecimal bankamtAll = BigDecimal.ZERO;
BigDecimal businessamtAll = BigDecimal.ZERO;
BigDecimal supplyamtAll = BigDecimal.ZERO;
BigDecimal otheramtAll = BigDecimal.ZERO;
BigDecimal totalamtAll = BigDecimal.ZERO;
DynamicObjectCollection fundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
if(loadzj != null){
for (DynamicObject dynamicObject : loadzj) {
DynamicObjectCollection zcgjFundplyentry = dynamicObject.getDynamicObjectCollection("zcgj_fundplyentry");
for (DynamicObject dy : zcgjFundplyentry) {
@ -252,34 +257,35 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin
totalamtAll = totalamtAll.add(zcgjTotalamt);
}
}
}
DynamicObject fundplyentry3 = fundplyentry.get(3);
fundplyentry3.set("zcgj_cashamt", cashamtAll);
fundplyentry3.set("zcgj_bankamt", bankamtAll);
fundplyentry3.set("zcgj_businessamt", businessamtAll);
fundplyentry3.set("zcgj_supplyamt", supplyamtAll);
fundplyentry3.set("zcgj_otheramt", otheramtAll);
fundplyentry3.set("zcgj_totalamt", totalamtAll);
this.getModel().setValue("zcgj_cashamtbak", cashamtAll);
this.getModel().setValue("zcgj_bankamtbak", bankamtAll);
this.getModel().setValue("zcgj_businessamtbak", businessamtAll);
this.getModel().setValue("zcgj_supplyamtbak", supplyamtAll);
this.getModel().setValue("zcgj_otheramtbak", otheramtAll);
this.getModel().setValue("zcgj_totalamtbak", totalamtAll);
this.getView().updateView("zcgj_fundplyentry");
this.getView().updateView("zcgj_cashamtbak");
this.getView().updateView("zcgj_bankamtbak");
this.getView().updateView("zcgj_businessamtbak");
this.getView().updateView("zcgj_supplyamtbak");
this.getView().updateView("zcgj_otheramtbak");
this.getView().updateView("zcgj_totalamtbak");
}
}
DynamicObject fundplyentry3 = fundplyentry.get(3);
fundplyentry3.set("zcgj_cashamt", cashamtAll);
fundplyentry3.set("zcgj_bankamt", bankamtAll);
fundplyentry3.set("zcgj_businessamt", businessamtAll);
fundplyentry3.set("zcgj_supplyamt", supplyamtAll);
fundplyentry3.set("zcgj_otheramt", otheramtAll);
fundplyentry3.set("zcgj_totalamt", totalamtAll);
}
this.getModel().setValue("zcgj_cashamtbak", cashamtAll);
this.getModel().setValue("zcgj_bankamtbak", bankamtAll);
this.getModel().setValue("zcgj_businessamtbak", businessamtAll);
this.getModel().setValue("zcgj_supplyamtbak", supplyamtAll);
this.getModel().setValue("zcgj_otheramtbak", otheramtAll);
this.getModel().setValue("zcgj_totalamtbak", totalamtAll);
this.getView().updateView("zcgj_fundplyentry");
this.getView().updateView("zcgj_cashamtbak");
this.getView().updateView("zcgj_bankamtbak");
this.getView().updateView("zcgj_businessamtbak");
this.getView().updateView("zcgj_supplyamtbak");
this.getView().updateView("zcgj_otheramtbak");
this.getView().updateView("zcgj_totalamtbak");
this.getView().setEnable(false, 3, "zcgj_cashamt","zcgj_bankamt","zcgj_businessamt","zcgj_supplyamt","zcgj_otheramt","zcgj_totalamt");
this.getView().setEnable(false, 7, "zcgj_cashamt","zcgj_bankamt","zcgj_businessamt","zcgj_supplyamt","zcgj_otheramt","zcgj_totalamt");
}
@ -310,7 +316,11 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin
}
}else if(name.equals("zcgj_org")){
DynamicObject org = (DynamicObject) changeData.getNewValue();
initData(org);
initData(org,null);
}else if(name.equals("zcgj_period")){
DynamicObject org = (DynamicObject) this.getModel().getValue("zcgj_org");
DynamicObject periodParam = (DynamicObject) changeData.getNewValue();
initData(org,periodParam);
}else if(name.equals("zcgj_allplannedbankaccept")){//银行承兑
BigDecimal amount = (BigDecimal) changeData.getNewValue();
DynamicObjectCollection zcgjFundplyentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_fundplyentry");
@ -437,14 +447,21 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin
dynamicObject.set("zcgj_proxyamount",zcgjSupplyamt2);//其中:公司代付金额
dynamicObject.set("zcgj_amountfield",zcgjSupplyamt2);//财务核定总金额
dynamicObject.set("zcgj_hdproxyamount",zcgjSupplyamt2);//财务核定金额代付
dynamicObject.set("zcgj_amount_remaining",zcgjSupplyamt2);
BigDecimal zcgjAmountRemaining = dynamicObject.getBigDecimal("zcgj_amount_remaining");
if(zcgjAmountRemaining==null){
dynamicObject.set("zcgj_amount_remaining",BigDecimal.ZERO);
}
}else if("QTJRCP".equals(zcgjSetttype)){
dynamicObject.set("zcgj_applymonthamt",zcgjOtheramt2);
dynamicObject.set("zcgj_hdamount",BigDecimal.ZERO);
dynamicObject.set("zcgj_proxyamount",zcgjOtheramt2);//其中:公司代付金额
dynamicObject.set("zcgj_amountfield",zcgjOtheramt2);//财务核定总金额
dynamicObject.set("zcgj_hdproxyamount",zcgjOtheramt2);//财务核定金额代付
dynamicObject.set("zcgj_amount_remaining",zcgjOtheramt2);
BigDecimal zcgjAmountRemaining = dynamicObject.getBigDecimal("zcgj_amount_remaining");
// dynamicObject.set("zcgj_amount_remaining",zcgjOtheramt2);
if(zcgjAmountRemaining==null){
dynamicObject.set("zcgj_amount_remaining",BigDecimal.ZERO);
}
}
}

View File

@ -19,8 +19,8 @@ import kd.ec.basedata.common.enums.DefaultEnum;
import kd.ec.basedata.common.invoicecloud.InvoiceDataHandleHelper;
import kd.ec.basedata.common.invoicecloud.bean.InvoiceItemVO;
import kd.ec.basedata.common.invoicecloud.bean.InvoiceVO;
import kd.ec.basedata.common.invoicecloud.enumeration.InvoiceTypeEnum;
import kd.ec.basedata.common.utils.TextHelper;
import zcgj.zcdev.zcdev.pr.utils.InvoiceTypeEnum;
import java.math.BigDecimal;
import java.text.ParseException;
@ -28,6 +28,9 @@ import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* 发票导入名称识别
*/
public class InvoiceNameRecognitionBillPlugin extends InvoiceDataHandleHelper {
private static final Log log = LogFactory.getLog(InvoiceNameRecognitionBillPlugin.class);
public static DynamicObject generateInvoiceByVO(InvoiceVO invoiceVO, MainEntityType dt, long id, long userID, long orgID, Date date, DynamicObject currency) {

View File

@ -25,7 +25,7 @@ import java.util.ArrayList;
import java.util.List;
/**
* 支出财务确认单删除时退回支出合同结算单
* 收入财务确认单删除时退回收入合同结算单
*/
public class InFinaceconfirmBackSettleOp extends AbstractOperationServicePlugIn {
@ -53,21 +53,21 @@ public class InFinaceconfirmBackSettleOp extends AbstractOperationServicePlugIn
long id = dataEntity.getLong("id");
long contractseetid = dataEntity.getLong("zcgj_ec_in_contractid");
DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(contractseetid, "ec_in_contract_settle");
DynamicObject inContractSettle = BusinessDataServiceHelper.loadSingle(contractseetid, "ec_in_contract_settle");
String billstatus = outContractSettle.getString("billstatus");
String billstatus = inContractSettle.getString("billstatus");
if(billstatus.equals("C")){
OperateOption option= OperateOption.create();
option.setVariableValue(OperateOptionConst.ISHASRIGHT, String.valueOf(true));//跳过权限校验
OperationResult result = OperationServiceHelper.executeOperate("unaudit", "ec_in_contract_settle", new DynamicObject[]{outContractSettle}, option);
OperationResult result = OperationServiceHelper.executeOperate("unaudit", "ec_in_contract_settle", new DynamicObject[]{inContractSettle}, option);
if(result.isSuccess()){
QFilter idFilter = new QFilter("id", "=", id);
int zcgjEcInFinaceconfirm = DeleteServiceHelper.delete("zcgj_ec_in_finaceconfirm", new QFilter[]{idFilter});
DynamicObject creator = outContractSettle.getDynamicObject("creator");
DynamicObject creator = inContractSettle.getDynamicObject("creator");
long userId = creator.getLong("id");
String billno = outContractSettle.getString("billno");
String billno = inContractSettle.getString("billno");
List<Long> userids= new ArrayList<Long>();
userids.add(userId);
sendMessage(userids,"ec_in_contract_settle",billno);

View File

@ -24,6 +24,7 @@ import kd.ec.contract.common.enums.PayDirectionEnum;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
@ -46,21 +47,24 @@ public class MaterialInAmountToItemEntryWorkFlowPlugin implements IWorkflowPlugi
log.info("MaterialInAmountToItemEntryWorkFlowPlugin:入库单推送支出合同结算单");
if(outContractSettleMap != null && !outContractSettleMap.isEmpty()) {
log.info("MaterialInAmountToItemEntryWorkFlowPlugin:"+businessKey);
Long dataId = (Long) outContractSettleMap.toArray()[0];
DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(dataId, "ec_out_contract_settle");
log.info("MaterialInAmountToItemEntryWorkFlowPlugin-billno:"+outContractSettle.getString("billno"));
sumMaterialInAmountToItemEntry(outContractSettle);
calAllTypeAmount(outContractSettle);
SaveServiceHelper.save(new DynamicObject[]{outContractSettle});
OperateOption option= OperateOption.create();
// option.setVariableValue("ishasright", "true");//此处是跳过校验权限
// option.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(false));
// option.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true));
// option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true));
option.setVariableValue(OperateOptionConst.ISHASRIGHT, String.valueOf(true));//跳过权限校验
//option.add(OperateOptionConst.SKIP_PERMISSION_CHECK);
OperationResult result = OperationServiceHelper.executeOperate("submit", "ec_out_contract_settle", new DynamicObject[]{outContractSettle}, option);
log.info("MaterialInAmountToItemEntryWorkFlowPlugin-result:"+result.toString());
for (Long dataId : outContractSettleMap) {
DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(dataId, "ec_out_contract_settle");
log.info("MaterialInAmountToItemEntryWorkFlowPlugin-billno:"+outContractSettle.getString("billno"));
sumMaterialInAmountToItemEntry(outContractSettle);
calAllTypeAmount(outContractSettle);
SaveServiceHelper.save(new DynamicObject[]{outContractSettle});
deleteZeroData(dataId);
OperateOption option= OperateOption.create();
// option.setVariableValue("ishasright", "true");//此处是跳过校验权限
// option.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(false));
// option.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true));
// option.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true));
option.setVariableValue(OperateOptionConst.ISHASRIGHT, String.valueOf(true));//跳过权限校验
//option.add(OperateOptionConst.SKIP_PERMISSION_CHECK);
OperationResult result = OperationServiceHelper.executeOperate("submit", "ec_out_contract_settle", new DynamicObject[]{outContractSettle}, option);
log.info("MaterialInAmountToItemEntryWorkFlowPlugin-result:"+result.toString());
}
}
}
@ -284,4 +288,32 @@ public class MaterialInAmountToItemEntryWorkFlowPlugin implements IWorkflowPlugi
outContractSettle.set("totalrealpaytaxamt", totalRealPayTaxAmt);
}
}
public void deleteZeroData(Long outContractSettleId){
DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle("ec_out_contract_settle",
"itementry,itementry.oftaxamount,zcgj_entryentity,zcgj_entryentity.zcgj_oftaxinvoiceamount,zcgj_processallocatentity,zcgj_processallocatentity.zcgj_pa_amount",
new QFilter[]{new QFilter("id","=",outContractSettleId)});
DynamicObjectCollection itementryCollection = outContractSettle.getDynamicObjectCollection("itementry"); //合同支付项分录
for (DynamicObject itementry : itementryCollection) {
//删除工序分摊价税合计为0的数据
DynamicObjectCollection dynamicObjectCollection = itementry.getDynamicObjectCollection("zcgj_processallocatentity");
dynamicObjectCollection.removeIf(dynamicObject -> dynamicObject.getBigDecimal("zcgj_pa_amount") == null || dynamicObject.getBigDecimal("zcgj_pa_amount").compareTo(BigDecimal.ZERO) == 0);
}
//删除合同支付项价税合计为0的数据
itementryCollection.removeIf(dynamicObject ->
//dynamicObject.getBigDecimal("oftaxamount") == null || dynamicObject.getBigDecimal("oftaxamount").compareTo(BigDecimal.ZERO) == 0
{
boolean isok = dynamicObject.getBigDecimal("oftaxamount") == null || dynamicObject.getBigDecimal("oftaxamount").compareTo(BigDecimal.ZERO) == 0;
DynamicObjectCollection dynamicObjectCollection = dynamicObject.getDynamicObjectCollection("zcgj_processallocatentity");
return isok && dynamicObjectCollection.isEmpty();
}
);
//删除进项发票价税合计为0的数据
DynamicObjectCollection entryentityCollection = outContractSettle.getDynamicObjectCollection("zcgj_entryentity");
entryentityCollection.removeIf(dynamicObject -> dynamicObject.getBigDecimal("zcgj_oftaxinvoiceamount") == null || dynamicObject.getBigDecimal("zcgj_oftaxinvoiceamount").compareTo(BigDecimal.ZERO) == 0);
log.info("MaterialInAmountToItemEntryWorkFlowPlugin-PaAmount");
SaveServiceHelper.save(new DynamicObject[]{outContractSettle});
}
}

View File

@ -0,0 +1,60 @@
package zcgj.zcdev.zcdev.pr.utils;
import kd.ec.basedata.common.enums.MultiLangEnumBridge;
import org.apache.commons.lang3.StringUtils;
public enum InvoiceTypeEnum {
OE("1", new MultiLangEnumBridge("普通电子发票", "InvoiceTypeEnum_0", "ec-ecbd-common")),
SE("2", new MultiLangEnumBridge("电子发票专票", "InvoiceTypeEnum_1", "ec-ecbd-common")),
OP("3", new MultiLangEnumBridge("普通纸质发票", "InvoiceTypeEnum_2", "ec-ecbd-common")),
SP("4", new MultiLangEnumBridge("专用纸质发票", "InvoiceTypeEnum_3", "ec-ecbd-common")),
OPR("5", new MultiLangEnumBridge("普通纸质卷票", "InvoiceTypeEnum_4", "ec-ecbd-common")),
OM("7", new MultiLangEnumBridge("通用机打", "InvoiceTypeEnum_5", "ec-ecbd-common")),
TAXI("8", new MultiLangEnumBridge("的士票", "InvoiceTypeEnum_6", "ec-ecbd-common")),
TRAIN("9", new MultiLangEnumBridge("火车票", "InvoiceTypeEnum_7", "ec-ecbd-common")),
PLANE("10", new MultiLangEnumBridge("飞机票", "InvoiceTypeEnum_8", "ec-ecbd-common")),
OTHER("11", new MultiLangEnumBridge("其他", "InvoiceTypeEnum_9", "ec-ecbd-common")),
MOTOR("12", new MultiLangEnumBridge("机动车", "InvoiceTypeEnum_10", "ec-ecbd-common")),
UC("13", new MultiLangEnumBridge("二手车", "InvoiceTypeEnum_11", "ec-ecbd-common")),
QUOTA("14", new MultiLangEnumBridge("定额发票", "InvoiceTypeEnum_12", "ec-ecbd-common")),
PASS("15", new MultiLangEnumBridge("通行费", "InvoiceTypeEnum_13", "ec-ecbd-common")),
PT("16", new MultiLangEnumBridge("客运发票", "InvoiceTypeEnum_14", "ec-ecbd-common")),
PB("17", new MultiLangEnumBridge("过路过桥费", "InvoiceTypeEnum_15", "ec-ecbd-common")),
DPP("19", new MultiLangEnumBridge("完税证明", "InvoiceTypeEnum_16", "ec-ecbd-common")),
SHIP("20", new MultiLangEnumBridge("轮船票", "InvoiceTypeEnum_17", "ec-ecbd-common")),
CUSTOMS("21", new MultiLangEnumBridge("海关缴款书", "InvoiceTypeEnum_18", "ec-ecbd-common")),
OME("23", new MultiLangEnumBridge("通用机打电子发票", "InvoiceTypeEnum_19", "ec-ecbd-common")),
TBP("24", new MultiLangEnumBridge("火车票退票凭证", "InvoiceTypeEnum_20", "ec-ecbd-common")),
FE("25", new MultiLangEnumBridge("财政电子票据", "InvoiceTypeEnum_21", "ec-ecbd-common")),
DOE("26", new MultiLangEnumBridge("数电发票(普通发票)", "InvoiceTypeEnum_26", "ec-ecbd-common")),//参考 发票类型发票云
DSP("27", new MultiLangEnumBridge("数电发票(增值税专用发票)", "InvoiceTypeEnum_27", "ec-ecbd-common"));//参考 发票类型发票云
public String value;
public MultiLangEnumBridge name;
private InvoiceTypeEnum(String value, MultiLangEnumBridge name) {
this.value = value;
this.name = name;
}
public String getValue() {
return this.value;
}
public String getName() {
return this.name.loadKDString();
}
public static InvoiceTypeEnum getEnumByValue(Object value) {
if (value != null) {
for(InvoiceTypeEnum enums : values()) {
if (StringUtils.equals(value.toString(), enums.getValue())) {
return enums;
}
}
}
return null;
}
}