From 7065ec5eddaaece338bf376f523dcf39b17626f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= <18222067976@163.com> Date: Tue, 26 Oct 2021 18:58:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E5=85=A5=E5=90=88=E5=90=8C=E5=B7=B2?= =?UTF-8?q?=E6=94=B6=E9=87=91=E9=A2=9D=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PayIncomeContractController.java | 79 +++++++++++++------ .../mapper/xml/PayIncomeContractMapper.xml | 16 ++-- .../impl/PayIncomeContractServiceImpl.java | 16 ++-- 3 files changed, 72 insertions(+), 39 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java index c661872d..a3723297 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PayIncomeContractController.java @@ -456,8 +456,15 @@ public class PayIncomeContractController extends JeroController query = new LambdaQueryWrapper<>(); query.in(PayIncomeContractInstallment::getContractId,listId); List listPayIncomeContractInstallment = payIncomeContractInstallmentService.list(query); - if(!CollectionUtils.isEmpty(listPayIncomeContractInstallment)){ - exportList.forEach(p->{ - String str = JSON.toJSONString(p); - Map map = JSONObject.parseObject(str,Map.class); - map.put("contractDate",DateUtils.date2Str(p.getContractDate(),new SimpleDateFormat("yyyy-MM-dd"))); - map.put("terminationDate",DateUtils.date2Str(p.getTerminationDate(),new SimpleDateFormat("yyyy-MM-dd"))); - map.put("opening",sysBaseAPI.translateDict("yn",String.valueOf(p.getOpening()))); - map.put("accountStatus",sysBaseAPI.translateDict("revenue_contract_account_status",String.valueOf(p.getAccountStatus()))); - map.put("pack",sysBaseAPI.translateDict("yn",String.valueOf(p.getPack()))); - List listSub = listPayIncomeContractInstallment.stream().filter(item-> - Objects.equals(p.getId(),item.getContractId())).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(listSub)){ + exportList.forEach(p->{ + if(Objects.isNull(p.getAccountsReceivableAmount())){ + p.setAccountsReceivableAmount(new BigDecimal("0.00")); + } + if(Objects.isNull(p.getAmountReceived())){ + p.setAmountReceived(new BigDecimal("0.00")); + } + p.setOutstandingAmount(p.getAccountsReceivableAmount().subtract(p.getAmountReceived())); + // 已收全款 + if(p.getOutstandingAmount().compareTo(new BigDecimal("0.00")) == 0 + || p.getOutstandingAmount().compareTo(new BigDecimal("0.00")) < 0){ + p.setAccountStatus(PayIncomeContractCommon.ACCOUNT_STATUS3); + } + // 部分收款 + if(p.getOutstandingAmount().compareTo(new BigDecimal("0.00")) > 0 && p.getOutstandingAmount().compareTo(p.getAccountsReceivableAmount()) < 0){ + p.setAccountStatus(PayIncomeContractCommon.ACCOUNT_STATUS2); + } + // 待收款 + if(p.getOutstandingAmount().compareTo(p.getAccountsReceivableAmount()) == 0 && p.getAccountsReceivableAmount().compareTo(new BigDecimal("0.00")) > 0 ){ + p.setAccountStatus(PayIncomeContractCommon.ACCOUNT_STATUS1); + } + String str = JSON.toJSONString(p); + Map map = JSONObject.parseObject(str,Map.class); + map.put("contractDate",DateUtils.date2Str(p.getContractDate(),new SimpleDateFormat("yyyy-MM-dd"))); + map.put("terminationDate",DateUtils.date2Str(p.getTerminationDate(),new SimpleDateFormat("yyyy-MM-dd"))); + map.put("opening",sysBaseAPI.translateDict("yn",String.valueOf(p.getOpening()))); + map.put("accountStatus",sysBaseAPI.translateDict("revenue_contract_account_status",String.valueOf(p.getAccountStatus()))); + map.put("pack",sysBaseAPI.translateDict("yn",String.valueOf(p.getPack()))); + + if(!CollectionUtils.isEmpty(listPayIncomeContractInstallment)) { + List listSub = listPayIncomeContractInstallment.stream().filter(item -> + Objects.equals(p.getId(), item.getContractId())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(listSub)) { int count = mapCount.get("count"); - if(count < listSub.size()){ - mapCount.put("count",listSub.size()); + if (count < listSub.size()) { + mapCount.put("count", listSub.size()); } - listSub.forEach(p1->{ + listSub.forEach(p1 -> { int n = listSub.indexOf(p1) + 1; - map.put("phaseName" + n,p1.getPhaseName()); - map.put("accountsReceivableAmount" + n,Objects.isNull(p1.getAccountsReceivableAmount()) ? "" : String.valueOf(p1.getAccountsReceivableAmount())); - map.put("accountsReceivableTime" + n, DateUtils.date2Str(p1.getAccountsReceivableTime(),new SimpleDateFormat("yyyy-MM-dd"))); - map.put("paidAmount" + n,Objects.isNull(p1.getPaidAmount()) ? "" : String.valueOf(p1.getPaidAmount())); - map.put("paidTime" + n,DateUtils.date2Str(p1.getPaidTime(),new SimpleDateFormat("yyyy-MM-dd"))); + map.put("phaseName" + n, p1.getPhaseName()); + map.put("accountsReceivableAmount" + n, Objects.isNull(p1.getAccountsReceivableAmount()) ? "" : String.valueOf(p1.getAccountsReceivableAmount())); + map.put("accountsReceivableTime" + n, DateUtils.date2Str(p1.getAccountsReceivableTime(), new SimpleDateFormat("yyyy-MM-dd"))); + map.put("paidAmount" + n, Objects.isNull(p1.getPaidAmount()) ? "" : String.valueOf(p1.getPaidAmount())); + map.put("paidTime" + n, DateUtils.date2Str(p1.getPaidTime(), new SimpleDateFormat("yyyy-MM-dd"))); }); } list.add(map); - }); - } + } + }); }else{ throw new JeroBootException("数据为空!"); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PayIncomeContractMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PayIncomeContractMapper.xml index 2e9272cb..a56aac43 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PayIncomeContractMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/mapper/xml/PayIncomeContractMapper.xml @@ -231,9 +231,6 @@ pic.termination_date AS terminationDate, pic.contract_time_points AS contractTimePoints, pic.accounts_receivable_amount AS accountsReceivableAmount, - pic.amount_received AS amountReceived, - pic.outstanding_amount AS outstandingAmount, - pic.account_status AS accountStatus, pic.contract_payment_times AS contractPaymentTimes, pic.pack, pic.pack_year AS packYear, @@ -248,26 +245,27 @@ where contract_id = pic.id AND accounts_receivable_time is not null AND accounts_receivable_time < DATE_FORMAT( NOW(), '%Y-%m-%d' ) AND accounts_receivable_amount != 0 AND accounts_receivable_amount > if(paid_amount is null or paid_amount = '',0,paid_amount) ) AS chargeStatus, - GROUP_CONCAT(project.projectName ORDER BY project.id DESC) AS associatedProject + GROUP_CONCAT(project.projectName ORDER BY project.id DESC) AS associatedProject, + sum(project.paid_amount) as amountReceived FROM pay_income_contract pic LEFT JOIN pay_income_contract_associated pica ON pica.contract_id = pic.id LEFT JOIN ( - SELECT id,charge_project AS projectName FROM pay_common_project + SELECT id,charge_project AS projectName,paid_amount FROM pay_common_project UNION ALL - SELECT pwgs.id,pwg.working_group_project AS projectName FROM pay_working_group_subitem pwgs + SELECT pwgs.id,pwg.working_group_project AS projectName,paid_amount FROM pay_working_group_subitem pwgs LEFT JOIN pay_working_group pwg ON pwg.id = pwgs.working_group_id WHERE pwg.working_group_project IS NOT NULL AND pwg.working_group_project != '' UNION ALL - SELECT sit.id,meeting.meeting_name AS projectName FROM pay_meeting meeting + SELECT sit.id,meeting.meeting_name AS projectName,paid_amount FROM pay_meeting meeting INNER JOIN pay_meeting_situation sit ON meeting.id = sit.meeting_id WHERE meeting.meeting_name IS NOT NULL AND meeting.meeting_name != '' UNION ALL - SELECT msub.id,pmp.project_name AS projectName FROM pay_member_project pmp + SELECT msub.id,pmp.project_name AS projectName,paid_amount FROM pay_member_project pmp INNER JOIN pay_member_project_subitem msub ON pmp.id = msub.project_id WHERE pmp.project_name IS NOT NULL AND pmp.project_name != '' UNION ALL - SELECT tmsub.id,tmember.project_name AS projectName FROM tb_member_project tmember + SELECT tmsub.id,tmember.project_name AS projectName,paid_amount FROM tb_member_project tmember INNER JOIN tb_member_project_subitem tmsub ON tmember.id=tmsub.project_id where tmember.project_name IS NOT NULL AND tmember.project_name != '' ) project ON project.id = pica.project_id diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java index e6aea71e..3f89c2e5 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java @@ -138,10 +138,10 @@ public class PayIncomeContractServiceImpl extends ServiceImpl