diff --git a/db/24年1月5日上线变更.sql b/db/24年1月5日上线变更.sql new file mode 100644 index 00000000..99b2a76a --- /dev/null +++ b/db/24年1月5日上线变更.sql @@ -0,0 +1,26 @@ +-- 增加会议打包统计的菜单 +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1739214868996505601', '1739213908475723777', '导出', '', NULL, NULL, NULL, 2, 'meetingPackStatistics:export', '1', 2.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-12-25 17:21:52', NULL, NULL, 0, 0, '1', 0, 0); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1739214686250680322', '1739213908475723777', '查询', NULL, NULL, NULL, NULL, 2, 'meetingPackStatistics:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-12-25 17:21:09', NULL, NULL, 0, 0, '1', 0, 0); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1739213908475723777', '1437320526513905666', '会议打包统计', '/statisticalReport/meetingPackStatistics', 'statisticalReport/MeetingPackStatistics', NULL, NULL, 1, NULL, '1', 12.00, 0, NULL, 1, 0, 0, 0, NULL, 'LKGLZ', '2023-12-25 17:18:03', NULL, NULL, 0, 0, '1', 0, 0); + +-- pay_common_project表新增estimated_arrival_date(预估到账日期)字段 +ALTER TABLE `pay_common_project` ADD COLUMN `estimated_arrival_date` date COMMENT '预估到账日期'; + +-- pay_member_project_subitem表新增estimated_arrival_date(预估到账日期)字段 +ALTER TABLE `pay_member_project_subitem` ADD COLUMN `estimated_arrival_date` date COMMENT '预估到账日期'; + +-- pay_working_group_subitem表新增estimated_arrival_date(预估到账日期)字段 +ALTER TABLE `pay_working_group_subitem` ADD COLUMN `estimated_arrival_date` date COMMENT '预估到账日期'; + +-- 财务管理-到账开票-撤回开票、撤回确认收入菜单的调整 +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1739913897061462018', '1435815710331621378', '撤销确认收入', NULL, NULL, NULL, NULL, 2, 'incomePaymentAndInvoicing:revokeConfirm', '1', 11.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-12-27 15:39:34', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1739913548313473026', '1435815710331621378', '撤销开票', NULL, NULL, NULL, NULL, 2, 'incomePaymentAndInvoicing:revokeInvoice', '1', 10.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-12-27 15:38:11', NULL, NULL, 0, 0, '1', 0, 1); +update sys_permission SET `name` = '撤销来款' WHERE id = '1570599545738825729'; + +-- pay_meeting_situation 添加预计到账日期 +ALTER TABLE `pay_meeting_situation` ADD COLUMN `estimated_arrival_date` datetime COMMENT '预计到账日期'; + +-- 添加索引 +ALTER TABLE pay_meeting_situation ADD INDEX pm_situation_idx_meeting_id (meeting_id); +ALTER TABLE pay_confirm_payment_record ADD INDEX pcpr_idx_project_id (project_id); + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/company/service/impl/PayCompanyManagementServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/company/service/impl/PayCompanyManagementServiceImpl.java index 095c1a00..14d84c25 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/company/service/impl/PayCompanyManagementServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/company/service/impl/PayCompanyManagementServiceImpl.java @@ -1,6 +1,7 @@ package com.jero.company.service.impl; import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -52,6 +53,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -742,55 +744,133 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl updatePayCompanyManagementTemporary = new LambdaUpdateWrapper<>(); - updatePayCompanyManagementTemporary.eq(PayCompanyManagementTemporary::getCompanyId,payCompanyManagement.getId()); - updatePayCompanyManagementTemporary.ge(PayCompanyManagementTemporary::getEditTime,payCompanyManagement.getEditTime()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCompanyName,payCompanyManagement.getCompanyName()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCompanyAddress,payCompanyManagement.getCompanyAddress()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCompanyPhone,payCompanyManagement.getCompanyPhone()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getPostalCode,payCompanyManagement.getPostalCode()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getBankAccountName,payCompanyManagement.getBankAccountName()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getOpeningBank,payCompanyManagement.getOpeningBank()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getDutyCode,payCompanyManagement.getDutyCode()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getStatus,PayCompanyManagementCommon.STATUS1); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getDataSource,payCompanyManagement.getDataSource()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getRemarks,payCompanyManagement.getRemarks()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getEditTime,payCompanyManagement.getEditTime()); - //updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCreateBy,payCompanyManagement.getCreateBy()); - //updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCreateTime,payCompanyManagement.getCreateTime()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getUpdateBy,payCompanyManagement.getUpdateBy()); - updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getUpdateTime,payCompanyManagement.getUpdateTime()); - payCompanyManagementTemporaryService.update(updatePayCompanyManagementTemporary); + //更新人员 LambdaUpdateWrapper updatePayContactsManagement = new LambdaUpdateWrapper<>(); updatePayContactsManagement.eq(PayContactsManagement::getCompanyId,payCompanyManagement.getId()); updatePayContactsManagement.set(PayContactsManagement::getCompanyName,payCompanyManagement.getCompanyName()); payContactsManagementService.update(updatePayContactsManagement); + int thisYear = DateUtil.thisYear(); + //需要更新的临时企业id + List companyTemporaryIdList = new ArrayList<>(); // 更新普通项目 - LambdaUpdateWrapper updatePayCommonProject = new LambdaUpdateWrapper<>(); - updatePayCommonProject.eq(PayCommonProject::getChargeCompanyId,payCompanyManagement.getId()); - //updatePayCommonProject.ge(PayCommonProject::getCreateTime,payCompanyManagement.getEditTime()); - updatePayCommonProject.set(PayCommonProject::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName()); - updatePayCommonProject.exists(" select 1 from pay_company_management_temporary where " + - "pay_common_project.charge_company_temporary_id = id and create_time >= '" + DateTime.of(payCompanyManagement.getEditTime()) + "'"); - payCommonProjectService.update(updatePayCommonProject); + LambdaQueryWrapper quaryPayCommonProject = new LambdaQueryWrapper<>(); + quaryPayCommonProject.eq(PayCommonProject::getChargeCompanyId,payCompanyManagement.getId()); + + quaryPayCommonProject.eq(PayCommonProject::getYear,thisYear); + quaryPayCommonProject.and( + a -> { + a.eq(PayCommonProject::getPaidAmount, BigDecimal.ZERO) + .or() + .isNull(PayCommonProject::getPaidAmount); + }); + quaryPayCommonProject.and( + a -> { + a.eq(PayCommonProject::getInvoiceAmount, BigDecimal.ZERO) + .or() + .isNull(PayCommonProject::getInvoiceAmount); + }); + quaryPayCommonProject.and( + a -> { + a.eq(PayCommonProject::getConfirmAmount, BigDecimal.ZERO) + .or() + .isNull(PayCommonProject::getConfirmAmount); + }); + List list = payCommonProjectService.list(quaryPayCommonProject); + List collect = list.stream().map(PayCommonProject::getChargeCompanyTemporaryId).collect(Collectors.toList()); + companyTemporaryIdList.addAll(collect); + if (!collect.isEmpty()){ + LambdaUpdateWrapper updatePayCommonProject = new LambdaUpdateWrapper<>(); + updatePayCommonProject.in(PayCommonProject::getChargeCompanyTemporaryId,collect); + updatePayCommonProject.set(PayCommonProject::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName()); + payCommonProjectService.update(updatePayCommonProject); + } + // 更新工作组 - LambdaUpdateWrapper updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>(); - updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getChargeCompanyId,payCompanyManagement.getId()); - //updatePayWorkingGroupSubItem.ge(PayWorkingGroupSubItem::getCreateTime,payCompanyManagement.getEditTime()); - updatePayWorkingGroupSubItem.exists(" select 1 from pay_company_management_temporary where " + - "pay_working_group_subitem.charge_company_temporary_id = id and create_time >= '" + DateTime.of(payCompanyManagement.getEditTime()) + "'"); - updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName()); - payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem); + QueryWrapper queryPayWorkingGroupSubItem = new QueryWrapper<>(); + queryPayWorkingGroupSubItem.eq("pwg.year",thisYear); + queryPayWorkingGroupSubItem.lambda().eq(PayWorkingGroupSubItem::getChargeCompanyId,payCompanyManagement.getId()) + .and( + a -> { + a.eq(PayWorkingGroupSubItem::getPaidAmount, BigDecimal.ZERO) + .or() + .isNull(PayWorkingGroupSubItem::getPaidAmount); + }) + .and( + a -> { + a.eq(PayWorkingGroupSubItem::getInvoiceAmount, BigDecimal.ZERO) + .or() + .isNull(PayWorkingGroupSubItem::getInvoiceAmount); + }) + .and( + a -> { + a.eq(PayWorkingGroupSubItem::getConfirmAmount, BigDecimal.ZERO) + .or() + .isNull(PayWorkingGroupSubItem::getConfirmAmount); + }); + List workingGroupSubItemList = payWorkingGroupSubItemService.queryList(queryPayWorkingGroupSubItem); + List collect1 = workingGroupSubItemList.stream().map(PayWorkingGroupSubItem::getChargeCompanyTemporaryId).collect(Collectors.toList()); + companyTemporaryIdList.addAll(collect1); + if (!collect1.isEmpty()){ + LambdaUpdateWrapper updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>(); + updatePayWorkingGroupSubItem.in(PayWorkingGroupSubItem::getChargeCompanyId,collect1); + updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName()); + payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem); + } + // 更新会员 - LambdaUpdateWrapper updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>(); - updatePayMemberProjectSubitem.eq(PayMemberProjectSubitem::getCompanyId,payCompanyManagement.getId()); - //updatePayMemberProjectSubitem.ge(PayMemberProjectSubitem::getCreateTime,payCompanyManagement.getEditTime()); - updatePayMemberProjectSubitem.exists(" select 1 from pay_company_management_temporary where " + - "pay_member_project_subitem.company_temporary_id = id and create_time >= '" + DateTime.of(payCompanyManagement.getEditTime()) + "'"); - updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getCompanyName,payCompanyManagement.getCompanyName()); - memberProjectSubitemService.update(updatePayMemberProjectSubitem); + QueryWrapper queryPayMemberProjectSubitem = new QueryWrapper<>(); + queryPayMemberProjectSubitem.eq("pmp.particular_year",thisYear); + queryPayMemberProjectSubitem.lambda().eq(PayMemberProjectSubitem::getCompanyId,payCompanyManagement.getId()) + .and( + a -> { + a.eq(PayMemberProjectSubitem::getPaidAmount, BigDecimal.ZERO) + .or() + .isNull(PayMemberProjectSubitem::getPaidAmount); + }) + .and( + a -> { + a.eq(PayMemberProjectSubitem::getInvoiceAmount, BigDecimal.ZERO) + .or() + .isNull(PayMemberProjectSubitem::getInvoiceAmount); + }) + .and( + a -> { + a.eq(PayMemberProjectSubitem::getConfirmAmount, BigDecimal.ZERO) + .or() + .isNull(PayMemberProjectSubitem::getConfirmAmount); + }); + List payMemberProjectSubitems = memberProjectSubitemService.queryPageListCompany(queryPayMemberProjectSubitem); + List collect2 = payMemberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyTemporaryId).collect(Collectors.toList()); + companyTemporaryIdList.addAll(collect2); + if (!collect2.isEmpty()){ + LambdaUpdateWrapper updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>(); + updatePayMemberProjectSubitem.in(PayMemberProjectSubitem::getCompanyId,payCompanyManagement.getId()); + updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getCompanyName,payCompanyManagement.getCompanyName()); + memberProjectSubitemService.update(updatePayMemberProjectSubitem); + } + + + // 更新临时数据 + if (!companyTemporaryIdList.isEmpty()) { + LambdaUpdateWrapper updatePayCompanyManagementTemporary = new LambdaUpdateWrapper<>(); + updatePayCompanyManagementTemporary.in(PayCompanyManagementTemporary::getId,companyTemporaryIdList); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCompanyName,payCompanyManagement.getCompanyName()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCompanyAddress,payCompanyManagement.getCompanyAddress()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getCompanyPhone,payCompanyManagement.getCompanyPhone()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getPostalCode,payCompanyManagement.getPostalCode()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getBankAccountName,payCompanyManagement.getBankAccountName()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getOpeningBank,payCompanyManagement.getOpeningBank()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getDutyCode,payCompanyManagement.getDutyCode()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getStatus,PayCompanyManagementCommon.STATUS1); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getDataSource,payCompanyManagement.getDataSource()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getRemarks,payCompanyManagement.getRemarks()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getEditTime,payCompanyManagement.getEditTime()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getUpdateBy,payCompanyManagement.getUpdateBy()); + updatePayCompanyManagementTemporary.set(PayCompanyManagementTemporary::getUpdateTime,payCompanyManagement.getUpdateTime()); + payCompanyManagementTemporaryService.update(updatePayCompanyManagementTemporary); + } + // 更新合同 LambdaUpdateWrapper updatePayIncomeContract = new LambdaUpdateWrapper<>(); updatePayIncomeContract.eq(PayIncomeContract::getSignedCompanyId,payCompanyManagement.getId()); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/index/service/IndexService.java b/jero-boot-incoming-payment/src/main/java/com/jero/index/service/IndexService.java index e386af18..deddf745 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/index/service/IndexService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/index/service/IndexService.java @@ -1,10 +1,9 @@ package com.jero.index.service; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; - -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.vo.DictModel; import com.jero.index.dto.YearMoneyDTO; @@ -19,7 +18,6 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; -import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @@ -78,6 +76,8 @@ public class IndexService { lineChartListVO.setBillMoney(reduce2.toString()); BigDecimal reduce3 = lineChartListVOList.stream().map(i -> new BigDecimal(i.getComeAllMoney())).reduce(BigDecimal.ZERO, BigDecimal::add); lineChartListVO.setComeAllMoney(reduce3.toString()); + BigDecimal reduce4 = lineChartListVOList.stream().map(i -> new BigDecimal(i.getEstimatedArrivalMoney())).reduce(BigDecimal.ZERO, BigDecimal::add); + lineChartListVO.setEstimatedArrivalMoney(reduce4.toString()); lineChartListVO.setPaymentDate("总数"); lineChartListVOList.add(lineChartListVO); return lineChartListVOList; @@ -99,6 +99,7 @@ public class IndexService { lineChartListVO.setBillMoney(allProjectStatistics.getBillMoney()); lineChartListVO.setComeAllMoney(allProjectStatistics.getComeAllMoney()); lineChartListVO.setPaymentDate(allProjectStatistics.getPaymentDate()); + lineChartListVO.setEstimatedArrivalMoney(allProjectStatistics.getEstimatedArrivalMoney()); return lineChartListVO; } @@ -111,6 +112,18 @@ public class IndexService { List billMoneyMap = cumulativeProcesZero(list.stream().map(AllProjectStatistics::getBillMoney).collect(Collectors.toList())); List confirmAmountMap = cumulativeProcesZero(list.stream().map(AllProjectStatistics::getConfirmAmount).collect(Collectors.toList())); List allMoneyMap = cumulativeProcesZero(list.stream().map(AllProjectStatistics::getAllMoney).collect(Collectors.toList())); + // 预计到账金额 + List listEstimatedArrivalMoney = payWorkingGroupMapper.cumulativeListEstimatedArrivalMoney(allProjectStatisticsSearch.getPaymentYear()); + // 累加金额 + for (int i = 1; i < listEstimatedArrivalMoney.size(); i++) { + AllProjectStatistics obj = listEstimatedArrivalMoney.get(i); + AllProjectStatistics objLast = listEstimatedArrivalMoney.get(i-1); + BigDecimal n = new BigDecimal(obj.getEstimatedArrivalMoney()); + BigDecimal l = new BigDecimal(objLast.getEstimatedArrivalMoney()); + obj.setEstimatedArrivalMoney(n.add(l).toPlainString()); + listEstimatedArrivalMoney.set(i,obj); + } + List date = list.stream().map(AllProjectStatistics::getPaymentDate).collect(Collectors.toList()); List dateList = new ArrayList<>(12); for (String d : date) { @@ -169,6 +182,9 @@ public class IndexService { if (lineChartListVO.getComeAllMoney().equals("0.00")) { lineChartListVO.setComeAllMoney(old.getComeAllMoney()); } + if (lineChartListVO.getEstimatedArrivalMoney().equals("0.00")) { + lineChartListVO.setEstimatedArrivalMoney(old.getEstimatedArrivalMoney()); + } } return list; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/index/vo/LineChartListVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/index/vo/LineChartListVO.java index c70877e6..07146d55 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/index/vo/LineChartListVO.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/index/vo/LineChartListVO.java @@ -24,4 +24,6 @@ public class LineChartListVO { @ApiModelProperty(value = "到账时间") private String paymentDate; + @ApiModelProperty(value = "预计到账金额") + private String estimatedArrivalMoney; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/IPayMailBillService.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/IPayMailBillService.java index 109726f4..26e925a2 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/IPayMailBillService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/IPayMailBillService.java @@ -6,8 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.company.entity.PayContactsManagement; -import com.jero.mail.vo.PayMailBillVO; import com.jero.mail.entity.PayMailBill; +import com.jero.mail.vo.PayMailBillVO; import com.jero.member.enums.StandardsTypeEnum; import java.util.List; @@ -98,4 +98,7 @@ public interface IPayMailBillService extends IService { IPage contactsSearchPageList(Page page, String userId, QueryWrapper queryWrapper); + + void backInvoice(String id); + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java index 2968b578..fe4c186c 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java @@ -25,7 +25,6 @@ import com.jero.company.service.IPayCompanyManagementService; import com.jero.company.service.IPayContactsManagementService; import com.jero.config.StaticConfig; import com.jero.contract.common.PayIncomeContractCommon; -import com.jero.mail.vo.PayMailBillVO; import com.jero.mail.entity.BillingInfo; import com.jero.mail.entity.PayMailBill; import com.jero.mail.entity.PayMailBillProject; @@ -33,17 +32,17 @@ import com.jero.mail.mapper.PayMailBillMapper; import com.jero.mail.mapper.PayMailBillProjectMapper; import com.jero.mail.service.IPayMailBillProjectService; import com.jero.mail.service.IPayMailBillService; +import com.jero.mail.vo.PayMailBillVO; import com.jero.meeting.entity.PayMeeting; import com.jero.meeting.entity.PayMeetingSituation; import com.jero.meeting.mapper.PayMeetingMapper; import com.jero.meeting.mapper.PayMeetingSituationMapper; import com.jero.meeting.service.IPayMeetingService; +import com.jero.meeting.service.IPayMeetingSituationService; import com.jero.member.entity.*; import com.jero.member.enums.StandardsTypeEnum; import com.jero.member.mapper.*; -import com.jero.member.service.IPayMemberProjectService; -import com.jero.member.service.ITbCertificatePaymentService; -import com.jero.member.service.ITbMemberProjectService; +import com.jero.member.service.*; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.payment.service.IPayPaymentRecordService; @@ -53,9 +52,12 @@ import com.jero.project.entity.PayWorkingGroupSubItem; import com.jero.project.entity.PayWorkingGroupSubItemContacts; import com.jero.project.mapper.PayCommonProjectMapper; import com.jero.project.mapper.PayWorkingGroupMapper; +import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper; import com.jero.project.mapper.PayWorkingGroupSubItemMapper; +import com.jero.project.service.IPayCommonProjectService; import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupSubItemContactsService; +import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.temporary.entity.PayCompanyManagementTemporary; import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; @@ -72,10 +74,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -143,6 +142,22 @@ public class PayMailBillServiceImpl extends ServiceImpl selectMailBillVO(String projectId) { if (StringUtils.isBlank(projectId)) { @@ -603,6 +618,189 @@ public class PayMailBillServiceImpl extends ServiceImpl queryPayMailBillProject = new LambdaQueryWrapper<>(); + queryPayMailBillProject.eq(PayMailBillProject::getBillId,id); + PayMailBillProject payMailBillProjectObj = payMailBillProjectService.getOne(queryPayMailBillProject,false); + if(Objects.isNull(payMailBillProjectObj)){ + throw new JeroBootException("未找到对应数据"); + } + // 标协会员缴费、证书缴费 先不做此功能的开发 + if(Arrays.asList(5,6).contains(payMailBillProjectObj.getProjectType())){ + throw new JeroBootException("标协会员缴费、证书缴费项目不可撤销"); + } + // 开票被邮寄的话就不能撤销 + if(Objects.equals(payMailBill.getPostStatus(),1)){ + throw new JeroBootException("票据已邮寄不可撤销"); + } + // 删除邮寄票据表 + removeById(id); + // 删除邮寄票据关联项目表 + payMailBillProjectService.removeById(payMailBillProjectObj.getId()); + // 更新项目信息 + updateProjectInfo(payMailBillProjectObj); + } + + public void updateProjectInfo(PayMailBillProject payMailBillProject){ + int makeInvoice=4; + BigDecimal amountReceivable = new BigDecimal("0");//待确收金额 + Integer needInvoice = 0;//是否需要发票 + BigDecimal invoiceAmount = payMailBillProject.getInvoiceAmount(); + if(Objects.isNull(invoiceAmount)){ + invoiceAmount = new BigDecimal("0");//本次开票金额 + } + BigDecimal oldInvoiceAmount;//开票金额 + BigDecimal noTaxAmount = payMailBillProject.getNoTaxAmount(); + BigDecimal tax = payMailBillProject.getTax(); + if (noTaxAmount == null || tax == null){ + noTaxAmount = invoiceAmount.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP); + tax = invoiceAmount.subtract(noTaxAmount); + } + switch (payMailBillProject.getProjectType().toString()) { + + // 普通项目 + case PayIncomeContractCommon.PROJECT_TYPE1: + PayCommonProject payCommonProject = payCommonProjectMapper.selectById(payMailBillProject.getProjectId()); + amountReceivable = payCommonProject.getReceivableAmount();//应收 + needInvoice = payCommonProject.getNeedInvoice();//是否需要发票 + oldInvoiceAmount = payCommonProject.getInvoiceAmount(); + if(oldInvoiceAmount==null){ + oldInvoiceAmount= new BigDecimal("0"); + } + //之前开票总额+本次开票金额 + invoiceAmount = oldInvoiceAmount.subtract(invoiceAmount).setScale(2, BigDecimal.ROUND_HALF_UP); + //税额 + noTaxAmount = payPaymentRecordService.subtractPaidAmount(noTaxAmount,payCommonProject.getInvoiceNoTaxAmount()); + tax = payPaymentRecordService.subtractPaidAmount(tax,payCommonProject.getInvoiceTax()); + break; + // 工作组项目 + case PayIncomeContractCommon.PROJECT_TYPE2: + PayWorkingGroupSubItem workingGroup = payWorkingGroupSubItemMapper.selectById(payMailBillProject.getProjectId()); + amountReceivable = workingGroup.getReceivableAmount();//应收 + needInvoice = workingGroup.getNeedInvoice();//是否需要发票 + oldInvoiceAmount = workingGroup.getInvoiceAmount(); + if(oldInvoiceAmount==null){ + oldInvoiceAmount= new BigDecimal("0"); + } + //之前开票总额+本次开票金额 + invoiceAmount = oldInvoiceAmount.subtract(invoiceAmount).setScale(2, BigDecimal.ROUND_HALF_UP); + //税额 + noTaxAmount = payPaymentRecordService.subtractPaidAmount(noTaxAmount,workingGroup.getInvoiceNoTaxAmount()); + tax = payPaymentRecordService.subtractPaidAmount(tax,workingGroup.getInvoiceTax()); + break; + //会议项目 + case PayIncomeContractCommon.PROJECT_TYPE3: + PayMeetingSituation meeting = payMeetingSituationMapper.selectById(payMailBillProject.getProjectId()); + amountReceivable = meeting.getAmountReceivable();//应收 + needInvoice = meeting.getNeedInvoice();//是否需要发票 + oldInvoiceAmount = meeting.getInvoiceAmount(); + if(oldInvoiceAmount==null){ + oldInvoiceAmount= new BigDecimal("0"); + } + //之前开票总额+本次开票金额 + invoiceAmount = oldInvoiceAmount.subtract(invoiceAmount).setScale(2, BigDecimal.ROUND_HALF_UP); + //税额 + noTaxAmount = payPaymentRecordService.subtractPaidAmount(noTaxAmount,meeting.getInvoiceNoTaxAmount()); + tax = payPaymentRecordService.subtractPaidAmount(tax,meeting.getInvoiceTax()); + break; + //会员项目 + case PayIncomeContractCommon.PROJECT_TYPE4: + PayMemberProjectSubitem memberProject = payMemberProjectSubitemMapper.selectById(payMailBillProject.getProjectId()); + amountReceivable = memberProject.getAmountReceivable();//应收 + needInvoice = memberProject.getNeedInvoice();//是否需要发票 + oldInvoiceAmount = memberProject.getInvoiceAmount(); + if(oldInvoiceAmount==null){ + oldInvoiceAmount= new BigDecimal("0"); + } + //之前开票总额+本次开票金额 + invoiceAmount = oldInvoiceAmount.subtract(invoiceAmount).setScale(2, BigDecimal.ROUND_HALF_UP); + //税额 + noTaxAmount = payPaymentRecordService.subtractPaidAmount(noTaxAmount,memberProject.getInvoiceNoTaxAmount()); + tax = payPaymentRecordService.subtractPaidAmount(tax,memberProject.getInvoiceTax()); + break; + default: + break; + } + + if(amountReceivable==null){ + amountReceivable =new BigDecimal("0"); + } + + BigDecimal zero =new BigDecimal("0"); + + //应收=0 || 不需要开票 + if(amountReceivable.compareTo(zero)==0 || needInvoice.equals(0)){ + makeInvoice= 3; + } + //应收>开票总额 && 开票总额!=0 + if(amountReceivable.compareTo(invoiceAmount) == 1 && !(invoiceAmount.compareTo(zero) == 0)){ + makeInvoice= 2; + } + //开票总额>=应收 + if(invoiceAmount.compareTo(amountReceivable) > -1){ + makeInvoice= 1; + } + //开票总额为0 + if(invoiceAmount.compareTo(zero)==0){ + makeInvoice= 0; + } + + //更新项目表开票状态 + switch (payMailBillProject.getProjectType().toString()) { + // 普通项目 + case PayIncomeContractCommon.PROJECT_TYPE1: + PayCommonProject newCommon = new PayCommonProject(); + newCommon.setId(payMailBillProject.getProjectId()); + newCommon.setMakeInvoice(makeInvoice); + newCommon.setInvoiceAmount(invoiceAmount); + newCommon.setInvoiceNoTaxAmount(noTaxAmount); + newCommon.setInvoiceTax(tax); + payCommonProjectMapper.updateById(newCommon); + break; + // 工作组项目 + case PayIncomeContractCommon.PROJECT_TYPE2: + PayWorkingGroupSubItem newWorkingGroup = new PayWorkingGroupSubItem(); + newWorkingGroup.setId(payMailBillProject.getProjectId()); + newWorkingGroup.setMakeInvoice(makeInvoice); + newWorkingGroup.setInvoiceAmount(invoiceAmount); + newWorkingGroup.setInvoiceNoTaxAmount(noTaxAmount); + newWorkingGroup.setInvoiceTax(tax); + payWorkingGroupSubItemMapper.updateById(newWorkingGroup); + break; + //会议项目 + case PayIncomeContractCommon.PROJECT_TYPE3: + PayMeetingSituation newMeeting = new PayMeetingSituation(); + newMeeting.setId(payMailBillProject.getProjectId()); + newMeeting.setMakeInvoice(makeInvoice); + newMeeting.setInvoiceAmount(invoiceAmount); + newMeeting.setInvoiceNoTaxAmount(noTaxAmount); + newMeeting.setInvoiceTax(tax); + payMeetingSituationMapper.updateById(newMeeting); + break; + //会员项目 + case PayIncomeContractCommon.PROJECT_TYPE4: + PayMemberProjectSubitem newMemberProject = new PayMemberProjectSubitem(); + newMemberProject.setId(payMailBillProject.getProjectId()); + newMemberProject.setMakeInvoice(makeInvoice); + newMemberProject.setInvoiceAmount(invoiceAmount); + newMemberProject.setInvoiceNoTaxAmount(noTaxAmount); + newMemberProject.setInvoiceTax(tax); + payMemberProjectSubitemMapper.updateById(newMemberProject); + break; + default: + break; + } + } + //校验不同项目是否属于同一个公司,开票金额是否大于当前未开票金额,企业名称是否审核 private String checkCompanyProject(List bmpList) { diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java index 3700a76e..73911865 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java @@ -17,6 +17,10 @@ import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.*; +import com.jero.company.common.PayContactsManagementCommon; +import com.jero.company.entity.PayCompanyManagement; +import com.jero.company.entity.PayContactsManagement; +import com.jero.company.service.IPayCompanyManagementService; import com.jero.company.service.IPayContactsManagementService; import com.jero.data.entity.PayCaseCommittee; import com.jero.data.entity.PayCaseCommitteeSubitem; @@ -84,6 +88,8 @@ public class PayMeetingController extends JeroController wrapper = new LambdaQueryWrapper<>(); @@ -531,7 +538,16 @@ public class PayMeetingController extends JeroController 0) { isSubItem = true; } + } else if (meetingType.equals(MeetingCommon.STANDARD_MEETING_INT)) { + PayContactsManagement contactsManagement = payContactsManagementService.getById(sysUserId); + String companyId = contactsManagement.getCompanyId(); + PayCompanyManagement companyManagement = payCompanyManagementService.getById(companyId); + String memberId = companyManagement.getMemberId(); + if (StringUtils.isNotBlank(memberId)) { + isSubItem = true; + } } + String meetingMinute = payMeeting.getMeetingMinute(); String meetingData = payMeeting.getMeetingData(); List fileList = new ArrayList<>(); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java index 0c95548c..0d185060 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java @@ -1,23 +1,26 @@ package com.jero.meeting.entity; -import java.io.Serializable; -import java.math.BigDecimal; - -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.jero.common.aspect.annotation.Dict; import com.jero.company.vo.UpdateInvoicePram; import com.jero.meeting.valid.group.CommonPeople; import com.jero.meeting.valid.group.Guest; -import lombok.Data; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; -import com.jero.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.*; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; /** * @Description: 会议报名信息 @@ -569,4 +572,10 @@ public class PayMeetingSituation implements Serializable { @ApiModelProperty(value = "发票项目") private Integer invoiceProject; + /**预计到账日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "预计到账日期") + private Date estimatedArrivalDate; + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingSituationMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingSituationMapper.java index 94014832..3bcb7b90 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingSituationMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingSituationMapper.java @@ -2,13 +2,16 @@ package com.jero.meeting.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.jero.meeting.vo.MeetingSituationContractVO; -import org.apache.ibatis.annotations.Param; import com.jero.meeting.entity.PayMeetingSituation; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.meeting.vo.MeetingSituationContractVO; +import com.jero.statistics.entity.MeetingPackStatistics; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @Description: 会议报名信息 @@ -27,4 +30,10 @@ public interface PayMeetingSituationMapper extends BaseMapper queryWrapper); Integer standardsCheckPhone(@Param("meetingId") String meetingId, @Param("phone") String phone); + + IPage getMeetingPackStatistics(Page page,@Param(Constants.WRAPPER) QueryWrapper query); + + List getMeetingPackStatistics(@Param(Constants.WRAPPER) QueryWrapper query); + + MeetingPackStatistics getMeetingPackStatisticsCount(@Param(Constants.WRAPPER) QueryWrapper query); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml index 88d22dd9..6df0d6aa 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml @@ -178,4 +178,21 @@ and pms.check_result = 1 and pms.register_check_result = 1 - \ No newline at end of file + + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java index 61129e67..eafc510e 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java @@ -3,15 +3,18 @@ package com.jero.meeting.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.meeting.entity.PayMeeting; import com.jero.meeting.entity.PayMeetingGuestsFile; import com.jero.meeting.entity.PayMeetingSituation; -import com.baomidou.mybatisplus.extension.service.IService; import com.jero.meeting.vo.*; +import com.jero.statistics.entity.MeetingPackStatisticsSearch; import org.jetbrains.annotations.Nullable; +import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; import java.util.List; /** @@ -102,4 +105,10 @@ public interface IPayMeetingSituationService extends IService guestsUploadFileList(GuestsUploadFileVO guestsUploadFileVO); void guestsDeleteFile(GuestsUploadFileVO guestsUploadFileVO); + + HashMap getMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch, + Integer pageNo, + Integer pageSize); + + ModelAndView excelMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java index 14bb94c4..27dbe577 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.constant.CommonConstant; import com.jero.common.dto.SendMessageDTO; import com.jero.common.enums.CompanyMessageEnums; @@ -66,20 +67,16 @@ import org.jetbrains.annotations.NotNull; import org.springframework.beans.BeanUtils; import org.springframework.core.env.Environment; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.io.File; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; - -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.ObjectUtils; - /** * @Description: 会议管理 * @Author: jero-boot @@ -314,6 +311,12 @@ public class PayMeetingServiceImpl extends ServiceImpl upPayMeetingSituation = new LambdaUpdateWrapper<>(); + upPayMeetingSituation.eq(PayMeetingSituation::getMeetingId,payMeeting.getId()); + upPayMeetingSituation.set(PayMeetingSituation::getEstimatedArrivalDate,payMeeting.getStartTime()); + payMeetingSituationService.update(upPayMeetingSituation); + delWithStandardForUpdate(payMeeting); //如果酒店联系人列表不为空,就更新 if (!CollectionUtils.isEmpty(hotelContactsList)) { diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java index 8726df0b..c5970902 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java @@ -1,5 +1,4 @@ package com.jero.meeting.service.impl; -import java.util.Date; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; @@ -12,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.vo.Result; import com.jero.common.common.ProjectCommon; import com.jero.common.constant.CommonConstant; @@ -20,15 +20,16 @@ import com.jero.common.enums.CompanyMessageEnums; import com.jero.common.enums.ManagementMessageEnums; import com.jero.common.enums.PaymentStatusEnum; import com.jero.common.exception.JeroBootException; +import com.jero.common.service.ContractCreateProjectSendMessageService; import com.jero.common.service.RolePermissionService; import com.jero.common.service.SendMessageService; -import com.jero.common.service.ContractCreateProjectSendMessageService; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; import com.jero.common.util.oConvertUtils; +import com.jero.company.common.PayContactsManagementCommon; import com.jero.company.entity.PayCompanyManagement; import com.jero.company.entity.PayContactsManagement; import com.jero.company.service.IPayCompanyManagementService; @@ -73,28 +74,32 @@ import com.jero.project.entity.PayWorkingGroupSubItemContacts; import com.jero.project.service.IPayWorkingGroupSubItemContactsService; import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.standards.memberinfo.service.IMemberInfoService; +import com.jero.statistics.entity.MeetingPackStatistics; +import com.jero.statistics.entity.MeetingPackStatisticsSearch; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService; import com.jero.util.ObjRecordUtil; import com.jero.util.module.ObjRecordUtilModule; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.enmus.ExcelType; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.jetbrains.annotations.NotNull; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.servlet.ModelAndView; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; - -import org.springframework.transaction.annotation.Transactional; - /** * @Description: 会议报名信息 * @Author: jero-boot @@ -154,6 +159,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayContactsManagement::getPhone,PasswordUtil.encrypt(phone)); + wrapper.eq(PayContactsManagement::getDelFlag, PayContactsManagementCommon.DEL_FLAG0); + PayContactsManagement contactsManagement = contactsManagementService.getOne(wrapper); + String companyId = contactsManagement.getCompanyId(); + PayCompanyManagement companyManagement = companyManagementService.getById(companyId); + String memberId = companyManagement.getMemberId(); + return StringUtils.isNotBlank(memberId)?1:0; } @Override @@ -1920,4 +1933,92 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl getMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch, + Integer pageNo, + Integer pageSize) { + QueryWrapper query = getPayMeetingSituationQueryWrapper(metingPackStatisticsSearch); + Page page = new Page<>(pageNo, pageSize); + addOrder(metingPackStatisticsSearch, query); + // 查看分页数据 + IPage pageList = payMeetingSituationMapper.getMeetingPackStatistics(page,query); + List list = pageList.getRecords(); + + if(!CollectionUtils.isEmpty(list)){ + for (MeetingPackStatistics obj : list) { + String str = sysBaseAPI.translateDict("meeting_type",String.valueOf(obj.getMeetingType())); + obj.setMeetingType_dictText(str); + } + } + + // 查看汇总价格 + QueryWrapper querySum = getPayMeetingSituationQueryWrapper(metingPackStatisticsSearch); + MeetingPackStatistics count = payMeetingSituationMapper.getMeetingPackStatisticsCount(querySum); + HashMap hashMap = new HashMap<>(); + hashMap.put("sumOfMoney", (Objects.isNull(count) || StringUtils.isBlank(count.getAllMoney())) ? 0 : count.getAllMoney()); + hashMap.put("sumOfReallyMoney", (Objects.isNull(count) || StringUtils.isBlank(count.getComeAllMoney())) ? 0 : count.getComeAllMoney()); + hashMap.put("sumOfBillMoney", (Objects.isNull(count) || StringUtils.isBlank(count.getBillMoney())) ? 0 : count.getBillMoney()); + hashMap.put("sumOfConfirmAmount", (Objects.isNull(count) || StringUtils.isBlank(count.getConfirmAmount())) ? 0 : count.getConfirmAmount()); + hashMap.put("pageList", pageList); + return hashMap; + } + + @Override + public ModelAndView excelMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch) { + QueryWrapper query = getPayMeetingSituationQueryWrapper(metingPackStatisticsSearch); + addOrder(metingPackStatisticsSearch, query); + List list = payMeetingSituationMapper.getMeetingPackStatistics(query); + + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + mv.addObject(NormalExcelConstants.FILE_NAME, "会议打包统计"); //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(NormalExcelConstants.CLASS, MeetingPackStatistics.class); + //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- + ExportParams exportParams=new ExportParams("会议打包统计", "会议打包统计"); + exportParams.setType(ExcelType.XSSF); + //update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置---------------------- + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, list); + return mv; + } + + @NotNull + private QueryWrapper getPayMeetingSituationQueryWrapper(MeetingPackStatisticsSearch metingPackStatisticsSearch) { + QueryWrapper query = new QueryWrapper<>(); + if (!StringUtils.isBlank(metingPackStatisticsSearch.getCompanyName())) { + query.lambda().like(PayMeetingSituation::getCompanyName, metingPackStatisticsSearch.getCompanyName()); + } + if (!StringUtils.isBlank(metingPackStatisticsSearch.getPayMode())) { + query.lambda().in(PayMeetingSituation::getPayMode, Arrays.asList(metingPackStatisticsSearch.getPayMode().split(","))); + } + if (!StringUtils.isBlank(metingPackStatisticsSearch.getPaymentYear())) { + query.eq("DATE_FORMAT(p3.payment_date,'%Y')", metingPackStatisticsSearch.getPaymentYear()); + } + query.groupBy("p3.project_id"); + return query; + } + + @NotNull + private void addOrder(MeetingPackStatisticsSearch metingPackStatisticsSearch,QueryWrapper query) { + query.select("p1.id,p1.meeting_id,p1.company_name,p1.company_contact_name,p1.amount_receivable as allMoney,p1.confirm_amount,\n" + + " p1.invoice_amount as billMoney,p1.paid_amount as comeAllMoney,p2.meeting_name,p2.meeting_type,DATE_FORMAT(p3.payment_date,'%Y') as payment_year"); + // 排序 + if(!StringUtils.isBlank(metingPackStatisticsSearch.getColumn()) && !StringUtils.isBlank(metingPackStatisticsSearch.getOrder())){ + String column = ""; + switch (metingPackStatisticsSearch.getColumn()){ + case "allMoney": column = "p1.amount_receivable";break; + case "confirmAmount": column = "p1.confirm_amount";break; + case "billMoney": column = "p1.invoice_amount";break; + case "comeAllMoney": column = "p1.paid_amount";break; + default:break; + } + if(!StringUtils.isBlank(column)){ + if(Objects.equals(metingPackStatisticsSearch.getOrder(),"asc")){ + query.orderByAsc(column); + }else{ + query.orderByDesc(column); + } + } + } + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java index 42e84486..2d67af26 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java @@ -1,6 +1,8 @@ package com.jero.member.controller; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; import javax.annotation.Resource; @@ -8,6 +10,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.jero.common.api.vo.Result; @@ -83,6 +86,21 @@ public class PayMemberProjectSubitemController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(payMemberProjectSubitem, req.getParameterMap()); + // 预计到账开始日期 + String estimatedArrivalStartDate = payMemberProjectSubitem.getEstimatedArrivalStartDate(); + // 预计到账结束日期 + String estimatedArrivalEndDate = payMemberProjectSubitem.getEstimatedArrivalEndDate(); + if (ObjectUtil.isNotEmpty(estimatedArrivalStartDate) && ObjectUtil.isNotEmpty(estimatedArrivalEndDate)) { + queryWrapper.lambda().ge(PayMemberProjectSubitem::getEstimatedArrivalDate,estimatedArrivalStartDate); + queryWrapper.lambda().le(PayMemberProjectSubitem::getEstimatedArrivalDate,estimatedArrivalEndDate); + } + if (ObjectUtil.isNotEmpty(estimatedArrivalStartDate) && ObjectUtil.isEmpty(estimatedArrivalEndDate)) { + queryWrapper.lambda().ge(PayMemberProjectSubitem::getEstimatedArrivalDate,estimatedArrivalStartDate); + } + if (ObjectUtil.isEmpty(estimatedArrivalEndDate) && ObjectUtil.isNotEmpty(estimatedArrivalEndDate)) { + queryWrapper.lambda().le(PayMemberProjectSubitem::getEstimatedArrivalDate,estimatedArrivalEndDate); + } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (!rolePermissionService.getRolePermission("safeguardMember:search")) { queryWrapper.eq("pmp.director_id",sysUser.getId()); @@ -144,6 +162,9 @@ public class PayMemberProjectSubitemController extends JeroController add(@RequestBody PayMemberProjectSubitem payMemberProjectSubitem) { + if (Objects.isNull(payMemberProjectSubitem.getEstimatedArrivalDate())) { + return Result.error("预估到账日期不能为空"); + } memberProjectService.check(payMemberProjectSubitem.getProjectId(),"safeguardMember:add"); ValidUtil.validate(payMemberProjectSubitem); memberProjectSubitemService.add(payMemberProjectSubitem); @@ -158,6 +179,9 @@ public class PayMemberProjectSubitemController extends JeroController edit(@RequestBody PayMemberProjectSubitem payMemberProjectSubitem) { + if (Objects.isNull(payMemberProjectSubitem.getEstimatedArrivalDate())) { + return Result.error("预估到账日期不能为空"); + } memberProjectSubitemService.check(payMemberProjectSubitem.getId(),"safeguardMember:edit"); ValidUtil.validate(payMemberProjectSubitem); memberProjectSubitemService.editById(payMemberProjectSubitem); @@ -283,6 +307,18 @@ public class PayMemberProjectSubitemController extends JeroController queryPageListCompany(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + List queryPageListCompany(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + IPage getPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml index 926cbf70..5a80d474 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml @@ -33,7 +33,24 @@ + + + + + + + + + + + + + + + + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectSubitemService.java index 06e34c8d..0dce1342 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectSubitemService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectSubitemService.java @@ -70,6 +70,8 @@ public interface IPayMemberProjectSubitemService extends IService queryPageListCompany(Page page, QueryWrapper queryWrapper); + List queryPageListCompany(QueryWrapper queryWrapper); + IPage getPage(Page page, QueryWrapper queryWrapper); void check(String subitemId, String permission); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java index 9bff200e..a9aae00b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java @@ -328,25 +328,24 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl queryPageListCompany(QueryWrapper queryWrapper) { + return baseMapper.queryPageListCompany(queryWrapper); + } + @Override public IPage getPage(Page page, QueryWrapper queryWrapper) { return baseMapper.getPage(page, queryWrapper); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/PayMemberProjectSubitemExcel.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/PayMemberProjectSubitemExcel.java index 04ad84fa..ce8f2819 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/PayMemberProjectSubitemExcel.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/PayMemberProjectSubitemExcel.java @@ -1,6 +1,7 @@ package com.jero.member.vo; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import com.jero.common.aspect.annotation.Dict; @@ -113,4 +114,32 @@ public class PayMemberProjectSubitemExcel { @NotBlank(message = "需要发票不能为空") private String needInvoice; + /**预估到账日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "预估到账日期") + @Excel(name = "预估到账日期", width = 15,orderNum = "5") + private String estimatedArrivalDate; + + @Excel(name = "邮寄联系人手机号", width = 17, orderNum = "4") + @ApiModelProperty(value = "邮寄联系人手机号") + @TableField(exist = false) + private String postContactPhone; + + @Excel(name = "邮寄联系人邮箱", width = 15, orderNum = "5") + @ApiModelProperty(value = "邮寄联系人邮箱") + @TableField(exist = false) + private String postContactMail; + + @Excel(name = "邮寄联系人通讯地址", width = 19, orderNum = "6") + @ApiModelProperty(value = "邮寄联系人地址") + @TableField(exist = false) + private String postContactAddress; + + @Excel(name = "邮寄联系人邮政编码", width = 19, orderNum = "7") + @ApiModelProperty(value = "邮寄联系人邮编") + @TableField(exist = false) + private String contactPostCode; + } + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayConfirmPaymentRecordController.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayConfirmPaymentRecordController.java index 85daf193..c0f600c8 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayConfirmPaymentRecordController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayConfirmPaymentRecordController.java @@ -1,29 +1,27 @@ package com.jero.payment.controller; -import com.jero.payment.entity.PayConfirmPaymentRecord; -import com.jero.payment.service.impl.PayConfirmPaymentRecordService; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.shiro.authz.annotation.RequiresPermissions; -import org.springframework.web.bind.annotation.*; -import com.jero.common.api.vo.Result; -import com.jero.common.system.query.QueryGenerator; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import lombok.extern.slf4j.Slf4j; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.system.base.controller.JeroController; -import org.springframework.validation.annotation.Validated; +import com.jero.common.system.query.QueryGenerator; +import com.jero.payment.entity.PayConfirmPaymentRecord; +import com.jero.payment.service.impl.PayConfirmPaymentRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import com.jero.common.aspect.annotation.AutoLog; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; +import java.util.List; /** * (pay_confirm_payment_record)表控制层 @@ -152,4 +150,15 @@ public class PayConfirmPaymentRecordController extends JeroController backIncoming(@RequestParam(name = "id") String id) { + payConfirmPaymentRecordService.backIncoming(id); + return Result.OK(); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayPaymentRecordController.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayPaymentRecordController.java index 37a65374..39fa3239 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayPaymentRecordController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayPaymentRecordController.java @@ -9,8 +9,8 @@ import com.jero.common.enums.PaymentStatusEnum; import com.jero.common.system.base.controller.JeroController; import com.jero.common.util.ValidUtil; import com.jero.contract.common.PayIncomeContractCommon; -import com.jero.mail.vo.PayMailBillVO; import com.jero.mail.service.IPayMailBillService; +import com.jero.mail.vo.PayMailBillVO; import com.jero.member.entity.TbCertificatePayment; import com.jero.member.entity.TbMemberProjectSubitem; import com.jero.member.service.ITbCertificatePaymentService; @@ -27,6 +27,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; + import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; @@ -266,6 +267,15 @@ public class PayPaymentRecordController extends JeroController backInvoice(@RequestParam String id) { + payMailBillService.backInvoice(id); + return Result.OK(); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml index 20d87319..cca83f91 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml @@ -47,11 +47,11 @@ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml index df6e6cbe..86b26bef 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml @@ -2522,4 +2522,17 @@ ) a + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml index b21dc889..51e2ac37 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml @@ -8,7 +8,8 @@ pwgs.working_group_id AS workingGroupId, pwgs.charge_company_id AS chargeCompanyId, pwgs.charge_company_temporary_id AS chargeCompanyTemporaryId, - pwgs.charge_company_temporary_name AS chargeCompanyTemporaryName, + + if(pwgs.charge_company_temporary_name = pcm.company_name, pwgs.charge_company_temporary_name, concat(pwgs.charge_company_temporary_name,'(更名为',pcm.company_name,')')) as chargeCompanyTemporaryName, pwgs.contacts_id_one AS contactsIdOne, pwgs.contacts_temporary_id_one AS contactsTemporaryIdOne, pwgs.contacts_temporary_name_one AS contactsTemporaryNameOne, @@ -44,13 +45,16 @@ pwgs.tax, pwgs.tax_rate, pwgs.no_tax_amount, - pwgs.label + pwgs.label, + pwgs.estimated_arrival_date FROM pay_working_group_subitem pwgs LEFT JOIN pay_payment_record ppr ON ppr.project_id = pwgs.id + left join pay_company_management_temporary pcmt on pwgs.charge_company_temporary_id = pcmt.id + left join pay_company_management pcm on pcmt.company_id = pcm.id pwgs.working_group_id = #{payWorkingGroupSubItem.workingGroupId} - AND pwgs.charge_company_temporary_name LIKE + AND pcm.company_name LIKE concat('%',concat(#{payWorkingGroupSubItem.chargeCompanyTemporaryName},'%')) @@ -68,6 +72,12 @@ and label LIKE concat('%',#{payWorkingGroupSubItem.label},'%') + + AND pwgs.estimated_arrival_date >= #{payWorkingGroupSubItem.estimatedArrivalStartDate} + + + AND pwgs.estimated_arrival_date <= #{payWorkingGroupSubItem.estimatedArrivalEndDate} + GROUP BY pwgs.id ORDER BY pwgs.create_time desc @@ -179,6 +189,9 @@ and DATE_FORMAT (pcpr.payment_date,'%m') like concat(#{payWorkingGroupSubletSearch.paymentMonth}, '%') --> + + AND pack = #{payWorkingGroupSubletSearch.pack} + group by id @@ -251,6 +264,9 @@ + + AND pack = #{payWorkingGroupSubletSearch.pack} +