Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
cbbcdbaaa7
|
|
@ -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()){
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
//发票明细分录
|
||||
|
|
|
|||
|
|
@ -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});
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue