From 0865fa0747b8fdcd6049ad001e207e012dfde25d Mon Sep 17 00:00:00 2001 From: zm <2369059705qq.com> Date: 星期三, 12 三月 2025 10:19:45 +0800 Subject: [PATCH] 整体BUG修改 --- src/main/java/com/product/contract/service/ContractPaymentService.java | 50 +++++++++++++++++++++++++++++++++++++------------- 1 files changed, 37 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/product/contract/service/ContractPaymentService.java b/src/main/java/com/product/contract/service/ContractPaymentService.java index ed2a64b..5c7e0aa 100644 --- a/src/main/java/com/product/contract/service/ContractPaymentService.java +++ b/src/main/java/com/product/contract/service/ContractPaymentService.java @@ -46,26 +46,49 @@ @Override @Transactional public String saveContractPayment(FieldSetEntity fs) throws BaseException { - FieldSetEntity fspay = baseDao.getFieldSetEntityByFilter(CmnConst.LX_PROJECT_CONTRACT_INFO_SUB,"contract_info_uuid=?",new Object[]{fs.getString("contract_name")},false); - Double amount_collected = fs.getDouble("amount_collected");//宸插洖娆鹃噾棰� - //鍥炲啓鍥炴閲戦鍒板悎鍚屽瓙琛� - FieldSetEntity fcosub = new FieldSetEntity(); - if(fspay!=null){ - fcosub.setTableName(CmnConst.LX_PROJECT_CONTRACT_INFO_SUB); - fcosub.setValue("uuid",fspay.getUUID()); - fcosub.setValue("payment_received",amount_collected);//宸插洖娆鹃噾棰� - 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("created_utc_datetime",new Date()); - return baseDao.add(fs,true); + String add = baseDao.add(fs, true); + writeBackPayment(fs); + return add; } else { fs.setValue("updated_by", SpringMVCContextHolder.getCurrentUser().getUser_id()); fs.setValue("updated_utc_datetime",new Date()); baseDao.update(fs); + writeBackPayment(fs); return fs.getString(CmnConst.UUID); + } + } + private void writeBackPayment(FieldSetEntity fs){ + //鍥炲啓鍙戠エ鍙峰洖娆� + DataTableEntity dt = fs.getSubDataTable(CmnConst.LX_PROJECT_CONTRACT_PAYMENT_COLLECTION); + for (int i = 0; i <dt.getRows() ; i++) { + FieldSetEntity subFs = dt.getFieldSetEntity(i); + FieldSetEntity collection_amount_fs = baseDao.getFieldSetBySQL("SELECT sum(collection_amount) collection_amount FROM `product_project_contract_payment_collection` where invoice_num=?", new String[]{subFs.getString("invoice_num")}, false); + baseDao.executeUpdate("UPDATE product_project_contract_invoice_info set payment_amount=? where invoice_num=?",new String[]{collection_amount_fs.getString("collection_amount"),subFs.getString("invoice_num")}); + } + //鍥炲啓鏉℃鍥炴 + FieldSetEntity contractTerms = baseDao.getFieldSetBySQL("SELECT sum(collection_amount) collection_amount FROM `product_project_contract_payment_collection` \n" + + "where contract_payment_uuid in(SELECT uuid FROM product_project_contract_payment where contract_terms=?)", new String[]{fs.getString("contract_terms")}, false); + if (contractTerms!=null&&!StringUtils.isEmpty(contractTerms.getString("collection_amount"))) { + FieldSetEntity contractInfoSub = new FieldSetEntity(); + contractInfoSub.setTableName(CmnConst.LX_PROJECT_CONTRACT_INFO_SUB); + contractInfoSub.setValue("uuid",fs.getString("contract_terms")); + contractInfoSub.setValue("payment_amount",contractTerms.getString("collection_amount")); + baseDao.update(contractInfoSub); + } + //鍥炲啓鍚堝悓鎬诲洖娆� + FieldSetEntity contractName = baseDao.getFieldSetBySQL("SELECT sum(collection_amount) collection_amount FROM `product_project_contract_payment_collection` \n" + + "where contract_payment_uuid in(SELECT uuid FROM product_project_contract_payment where contract_name=?)", new String[]{fs.getString("contract_name")}, false); + if (contractName!=null&&!StringUtils.isEmpty(contractName.getString("collection_amount"))){ + FieldSetEntity contractInfo = new FieldSetEntity(); + contractInfo.setTableName(CmnConst.LX_PROJECT_CONTRACT_INFO); + contractInfo.setValue("uuid",fs.getString("contract_name")); + contractInfo.setValue("collection_amount",contractName.getString("collection_amount")); + baseDao.update(contractInfo); } } @@ -117,13 +140,14 @@ * @throws BaseException */ public DataTableEntity paymentCollectionData()throws BaseException{ - return baseDao.listTable("SELECT b.project_name,b.customer_name,a.contract_name,c.clause_content,d.invoice_num,e.apply_time,d.invoice_amount,f.collection_amount,f.collection_time FROM \n" + + return baseDao.listTable("SELECT b.project_name,g.customer_name,a.contract_name,c.clause_content,d.invoice_num,e.apply_time,d.invoice_amount,f.collection_amount,f.collection_time FROM \n" + "product_project_contract_info a \n" + "LEFT JOIN product_project_business b on a.project_uuid=b.uuid\n" + "LEFT JOIN product_project_contract_info_sub c on a.uuid =c.contract_info_uuid\n" + "LEFT JOIN product_project_contract_invoice_info d on c.uuid=d.contract_terms\n" + "LEFT JOIN product_project_contract_invoice e on e.uuid=d.contract_invoice_uuid\n" + - "LEFT JOIN product_project_contract_payment_collection f on d.invoice_num=f.invoice_num"); + "LEFT JOIN product_project_contract_payment_collection f on d.invoice_num=f.invoice_num\n" + + "LEFT JOIN product_project_customer g on b.customer_name=g.uuid",new String[]{}); } } -- Gitblit v1.9.2