From 38eaaa83c6ba703edfa90e72054b5548dbeb07e0 Mon Sep 17 00:00:00 2001
From: 杜洪波 <1074825718@qq.com>
Date: 星期五, 14 三月 2025 20:44:26 +0800
Subject: [PATCH] 开票回款调整
---
src/main/java/com/product/contract/service/ContractInvoiceService.java | 51 +++++++++++++++++++++++++++++++++++++++------------
1 files changed, 39 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/product/contract/service/ContractInvoiceService.java b/src/main/java/com/product/contract/service/ContractInvoiceService.java
index 83b1112..9092684 100644
--- a/src/main/java/com/product/contract/service/ContractInvoiceService.java
+++ b/src/main/java/com/product/contract/service/ContractInvoiceService.java
@@ -44,30 +44,57 @@
@Override
@Transactional
public String saveContractInvoice(FieldSetEntity fs) {
- FieldSetEntity fsinvo = baseDao.getFieldSetEntityByFilter(CmnConst.LX_PROJECT_CONTRACT_INFO_SUB,"contract_info_uuid=?",new Object[]{fs.getString("contract_name")},false);
- Double invoiced_amount = fs.getDouble("invoiced_amount");//宸插紑绁ㄩ噾棰�
- //鍥炲啓宸插紑绁ㄩ噾棰濆埌鍚堝悓瀛愯〃
- FieldSetEntity fcosub = new FieldSetEntity();
- if(fsinvo!=null){
- fcosub.setTableName(CmnConst.LX_PROJECT_CONTRACT_INFO_SUB);
- fcosub.setValue("uuid",fsinvo.getUUID());
- fcosub.setValue("invoice_amount",invoiced_amount);//宸插紑绁ㄩ噾棰�
- baseDao.update(fcosub);
- }
if(StringUtils.isEmpty(fs.getString(CmnConst.UUID))){
- fs.setValue("org_level_uuid", SpringMVCContextHolder.getCurrentUser().getOrg_level_uuid());
fs.setValue("created_by", SpringMVCContextHolder.getCurrentUser().getUser_id());
+ fs.setValue("org_level_uuid", SpringMVCContextHolder.getCurrentUser().getOrg_level_uuid());
fs.setValue("created_utc_datetime",new Date());
- return baseDao.add(fs,true);
+ String add = baseDao.add(fs, true);
+ writeBackInvoice(fs);
+ return add;
} else {
fs.setValue("updated_by", SpringMVCContextHolder.getCurrentUser().getUser_id());
fs.setValue("updated_utc_datetime",new Date());
baseDao.update(fs);
+ writeBackInvoice(fs);
return fs.getString(CmnConst.UUID);
}
}
/**
+ * 鍥炲啓鍥炴閲戦鍒板悎鍚�
+ * @param fs
+ */
+ private void writeBackInvoice(FieldSetEntity fs){
+ //鎸夌収鏉℃鍥炲啓鍒板悎鍚屽瓙琛�
+ DataTableEntity subDataTable = fs.getSubDataTable(CmnConst.LX_PROJECT_CONTRACT_INVOICE_INFO);
+ for (int i = 0; i <subDataTable.getRows() ; i++) {
+ FieldSetEntity fsData = subDataTable.getFieldSetEntity(i);
+ FieldSetEntity fsinvo = baseDao.getFieldSetEntityByFilter(CmnConst.LX_PROJECT_CONTRACT_INVOICE_INFO,"contract_terms=?",new Object[]{fsData.getString("contract_terms")},false);
+
+ FieldSetEntity contractTerms = baseDao.getFieldSetEntityBySQL("SELECT sum(invoice_amount) invoice_amount FROM product_project_contract_invoice_info where contract_terms=? GROUP BY contract_terms", new Object[]{fsData.getString("contract_terms")}, false);
+
+ Double invoiced_amount = contractTerms.getDouble("invoice_amount");//宸插紑绁ㄩ噾棰�
+ //鍥炲啓宸插紑绁ㄩ噾棰濆埌鍚堝悓瀛愯〃
+ FieldSetEntity fcosub = new FieldSetEntity();
+ if(fsinvo!=null){
+ fcosub.setTableName(CmnConst.LX_PROJECT_CONTRACT_INFO_SUB);
+ fcosub.setValue("uuid",fsData.getString("contract_terms"));
+ fcosub.setValue("invoice_amount",invoiced_amount);//宸插紑绁ㄩ噾棰�
+ baseDao.update(fcosub);
+ }
+ }
+ //鎸夌収鍚堝悓鍥炲啓鍒板悎鍚屼富琛�
+ FieldSetEntity invoice_amount_fs = baseDao.getFieldSetEntityBySQL("SELECT sum(invoice_amount) invoice_amount FROM product_project_contract_invoice_info \n" +
+ "where contract_invoice_uuid in (SELECT uuid FROM product_project_contract_invoice where contract_name=?)", new Object[]{fs.getString("contract_name")}, false);
+ if(invoice_amount_fs!=null) {
+ FieldSetEntity invoiceFs = new FieldSetEntity();
+ invoiceFs.setTableName(CmnConst.LX_PROJECT_CONTRACT_INFO);
+ invoiceFs.setValue("uuid",fs.getString("contract_name"));
+ invoiceFs.setValue("invoice_amount",invoice_amount_fs.getString("invoice_amount"));//宸插紑绁ㄩ噾棰�
+ baseDao.update(invoiceFs);
+ }
+ }
+ /**
* 鍒犻櫎鍚堝悓寮�绁�
* @param fs
* @return
--
Gitblit v1.9.2