Merge branch 'branch20240105'
This commit is contained in:
@@ -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);
|
||||
|
||||
+121
-41
@@ -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<PayCompanyManag
|
||||
* @Exception
|
||||
*/
|
||||
private void updateBatchData(PayCompanyManagement payCompanyManagement){
|
||||
// 更新临时数据
|
||||
LambdaUpdateWrapper<PayCompanyManagementTemporary> 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<PayContactsManagement> updatePayContactsManagement = new LambdaUpdateWrapper<>();
|
||||
updatePayContactsManagement.eq(PayContactsManagement::getCompanyId,payCompanyManagement.getId());
|
||||
updatePayContactsManagement.set(PayContactsManagement::getCompanyName,payCompanyManagement.getCompanyName());
|
||||
payContactsManagementService.update(updatePayContactsManagement);
|
||||
int thisYear = DateUtil.thisYear();
|
||||
//需要更新的临时企业id
|
||||
List<String> companyTemporaryIdList = new ArrayList<>();
|
||||
// 更新普通项目
|
||||
LambdaUpdateWrapper<PayCommonProject> 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<PayCommonProject> 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<PayCommonProject> list = payCommonProjectService.list(quaryPayCommonProject);
|
||||
List<String> collect = list.stream().map(PayCommonProject::getChargeCompanyTemporaryId).collect(Collectors.toList());
|
||||
companyTemporaryIdList.addAll(collect);
|
||||
if (!collect.isEmpty()){
|
||||
LambdaUpdateWrapper<PayCommonProject> updatePayCommonProject = new LambdaUpdateWrapper<>();
|
||||
updatePayCommonProject.in(PayCommonProject::getChargeCompanyTemporaryId,collect);
|
||||
updatePayCommonProject.set(PayCommonProject::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName());
|
||||
payCommonProjectService.update(updatePayCommonProject);
|
||||
}
|
||||
|
||||
// 更新工作组
|
||||
LambdaUpdateWrapper<PayWorkingGroupSubItem> 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<PayWorkingGroupSubItem> 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<PayWorkingGroupSubItem> workingGroupSubItemList = payWorkingGroupSubItemService.queryList(queryPayWorkingGroupSubItem);
|
||||
List<String> collect1 = workingGroupSubItemList.stream().map(PayWorkingGroupSubItem::getChargeCompanyTemporaryId).collect(Collectors.toList());
|
||||
companyTemporaryIdList.addAll(collect1);
|
||||
if (!collect1.isEmpty()){
|
||||
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
|
||||
updatePayWorkingGroupSubItem.in(PayWorkingGroupSubItem::getChargeCompanyId,collect1);
|
||||
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName());
|
||||
payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem);
|
||||
}
|
||||
|
||||
// 更新会员
|
||||
LambdaUpdateWrapper<PayMemberProjectSubitem> 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<PayMemberProjectSubitem> 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<PayMemberProjectSubitem> payMemberProjectSubitems = memberProjectSubitemService.queryPageListCompany(queryPayMemberProjectSubitem);
|
||||
List<String> collect2 = payMemberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyTemporaryId).collect(Collectors.toList());
|
||||
companyTemporaryIdList.addAll(collect2);
|
||||
if (!collect2.isEmpty()){
|
||||
LambdaUpdateWrapper<PayMemberProjectSubitem> updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>();
|
||||
updatePayMemberProjectSubitem.in(PayMemberProjectSubitem::getCompanyId,payCompanyManagement.getId());
|
||||
updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getCompanyName,payCompanyManagement.getCompanyName());
|
||||
memberProjectSubitemService.update(updatePayMemberProjectSubitem);
|
||||
}
|
||||
|
||||
|
||||
// 更新临时数据
|
||||
if (!companyTemporaryIdList.isEmpty()) {
|
||||
LambdaUpdateWrapper<PayCompanyManagementTemporary> 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<PayIncomeContract> updatePayIncomeContract = new LambdaUpdateWrapper<>();
|
||||
updatePayIncomeContract.eq(PayIncomeContract::getSignedCompanyId,payCompanyManagement.getId());
|
||||
|
||||
@@ -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<String> billMoneyMap = cumulativeProcesZero(list.stream().map(AllProjectStatistics::getBillMoney).collect(Collectors.toList()));
|
||||
List<String> confirmAmountMap = cumulativeProcesZero(list.stream().map(AllProjectStatistics::getConfirmAmount).collect(Collectors.toList()));
|
||||
List<String> allMoneyMap = cumulativeProcesZero(list.stream().map(AllProjectStatistics::getAllMoney).collect(Collectors.toList()));
|
||||
// 预计到账金额
|
||||
List<AllProjectStatistics> 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<String> date = list.stream().map(AllProjectStatistics::getPaymentDate).collect(Collectors.toList());
|
||||
List<String> 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;
|
||||
}
|
||||
|
||||
@@ -24,4 +24,6 @@ public class LineChartListVO {
|
||||
@ApiModelProperty(value = "到账时间")
|
||||
private String paymentDate;
|
||||
|
||||
@ApiModelProperty(value = "预计到账金额")
|
||||
private String estimatedArrivalMoney;
|
||||
}
|
||||
|
||||
+4
-1
@@ -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<PayMailBill> {
|
||||
|
||||
IPage<PayMailBill> contactsSearchPageList(Page<PayMailBill> page, String userId, QueryWrapper<PayMailBill> queryWrapper);
|
||||
|
||||
|
||||
void backInvoice(String id);
|
||||
|
||||
}
|
||||
|
||||
+206
-8
@@ -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<PayMailBillMapper, PayMa
|
||||
@Autowired
|
||||
private IPayPaymentRecordService payPaymentRecordService;
|
||||
|
||||
@Resource
|
||||
private IPayCommonProjectService payCommonProjectService;
|
||||
@Resource
|
||||
private IPayMemberProjectSubitemService payMemberProjectSubitemService;
|
||||
@Resource
|
||||
private IPayMeetingSituationService payMeetingSituationService;
|
||||
@Resource
|
||||
private IPayWorkingGroupSubItemService payWorkingGroupSubItemService;
|
||||
@Resource
|
||||
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
|
||||
@Resource
|
||||
private ITbCertificatePaymentService tbCertificatePaymentService;
|
||||
@Resource
|
||||
private PayWorkingGroupSubItemContactsMapper payWorkingGroupSubItemContactsMapper;
|
||||
|
||||
|
||||
@Override
|
||||
public List<PayMailBill> selectMailBillVO(String projectId) {
|
||||
if (StringUtils.isBlank(projectId)) {
|
||||
@@ -603,6 +618,189 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
return payMailBillMapper.contactsSearchPageList(page,userId,queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
public void backInvoice(String id) {
|
||||
if(StringUtils.isBlank(id)){
|
||||
throw new JeroBootException("邮寄票据Id不能为空");
|
||||
}
|
||||
PayMailBill payMailBill = getById(id);
|
||||
if(Objects.isNull(payMailBill)){
|
||||
throw new JeroBootException("未找到对应数据");
|
||||
}
|
||||
LambdaQueryWrapper<PayMailBillProject> 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<PayMailBillProject> bmpList) {
|
||||
|
||||
+16
@@ -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<PayMeeting, IPayMeeting
|
||||
@Resource
|
||||
private IPayContactsManagementService payContactsManagementService;
|
||||
@Resource
|
||||
private IPayCompanyManagementService payCompanyManagementService;
|
||||
@Resource
|
||||
private IPayMeetingSituationService payMeetingSituationService;
|
||||
@Resource
|
||||
private IPayWorkingGroupSubItemService payWorkingGroupSubItemService;
|
||||
@@ -513,6 +519,7 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
}
|
||||
Integer meetingType = payMeeting.getMeetingType();
|
||||
//如果是分标委会议或理事会会议,判断是否为成员
|
||||
//如果是标协会议,判断公司是否是会员单位
|
||||
boolean isSubItem = false;
|
||||
if (meetingType.equals(MeetingCommon.COMMITTEE_MEETING_INT)) {
|
||||
LambdaQueryWrapper<PayCaseCommitteeSubitem> wrapper = new LambdaQueryWrapper<>();
|
||||
@@ -531,7 +538,16 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
|
||||
if (count > 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<String> fileList = new ArrayList<>();
|
||||
|
||||
+18
-9
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
+12
-3
@@ -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<PayMeetingSituatio
|
||||
@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> queryWrapper);
|
||||
|
||||
Integer standardsCheckPhone(@Param("meetingId") String meetingId, @Param("phone") String phone);
|
||||
|
||||
IPage<MeetingPackStatistics> getMeetingPackStatistics(Page<PayMeetingSituation> page,@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> query);
|
||||
|
||||
List<MeetingPackStatistics> getMeetingPackStatistics(@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> query);
|
||||
|
||||
MeetingPackStatistics getMeetingPackStatisticsCount(@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> query);
|
||||
}
|
||||
|
||||
+18
-1
@@ -178,4 +178,21 @@
|
||||
and pms.check_result = 1
|
||||
and pms.register_check_result = 1
|
||||
</select>
|
||||
</mapper>
|
||||
<select id="getMeetingPackStatistics" resultType="com.jero.statistics.entity.MeetingPackStatistics">
|
||||
select
|
||||
${ew.sqlSelect}
|
||||
from pay_meeting_situation p1
|
||||
left join pay_meeting p2 on p1.meeting_id = p2.id
|
||||
left join pay_confirm_payment_record p3 on p3.project_id = p1.id
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="getMeetingPackStatisticsCount" resultType="com.jero.statistics.entity.MeetingPackStatistics">
|
||||
select sum(amount_receivable ) AS allMoney,sum(confirm_amount ) AS confirm_amount, sum(invoice_amount ) AS billMoney,sum(paid_amount ) AS comeAllMoney from
|
||||
(
|
||||
select p1.amount_receivable, p1.confirm_amount, p1.invoice_amount, p1.paid_amount from pay_meeting_situation p1
|
||||
left join pay_meeting p2 on p1.meeting_id = p2.id
|
||||
left join pay_confirm_payment_record p3 on p3.project_id = p1.id
|
||||
${ew.customSqlSegment}
|
||||
) a
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
+10
-1
@@ -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<PayMeetingSituatio
|
||||
List<PayMeetingGuestsFile> guestsUploadFileList(GuestsUploadFileVO guestsUploadFileVO);
|
||||
|
||||
void guestsDeleteFile(GuestsUploadFileVO guestsUploadFileVO);
|
||||
|
||||
HashMap<String, Object> getMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch,
|
||||
Integer pageNo,
|
||||
Integer pageSize);
|
||||
|
||||
ModelAndView excelMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch);
|
||||
}
|
||||
|
||||
+11
-8
@@ -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<PayMeetingMapper, PayMeet
|
||||
//进行校验,赋值操作
|
||||
PayMeeting payMeeting = getPayMeeting(payMeetingVO, hotelContactsList);
|
||||
saveOrUpdate(payMeeting);
|
||||
// 同步预计到账日期
|
||||
LambdaUpdateWrapper<PayMeetingSituation> upPayMeetingSituation = new LambdaUpdateWrapper<>();
|
||||
upPayMeetingSituation.eq(PayMeetingSituation::getMeetingId,payMeeting.getId());
|
||||
upPayMeetingSituation.set(PayMeetingSituation::getEstimatedArrivalDate,payMeeting.getStartTime());
|
||||
payMeetingSituationService.update(upPayMeetingSituation);
|
||||
|
||||
delWithStandardForUpdate(payMeeting);
|
||||
//如果酒店联系人列表不为空,就更新
|
||||
if (!CollectionUtils.isEmpty(hotelContactsList)) {
|
||||
|
||||
+115
-14
@@ -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<PayMeetingSituat
|
||||
private PayRandomCodeService randomCodeService;
|
||||
@Resource
|
||||
private PayMeetingGuestsFileMapper meetingGuestsFileMapper;
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
|
||||
private static final String[] CAN_MODIFY_LIST =
|
||||
@@ -186,7 +193,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
payMeetingSituation.setAmountReceivable(new BigDecimal("0"));
|
||||
//处理校验参会人信息
|
||||
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation);
|
||||
|
||||
payMeetingSituation1.setEstimatedArrivalDate(payMeeting1.getStartTime());
|
||||
saveMeetingSituation(payMeetingSituation1);
|
||||
|
||||
// 收入合同创建项目发送消息到项目负责人
|
||||
@@ -228,7 +235,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
//handlePack(payMeetingSituation1);
|
||||
//如果关联合同就不发消息
|
||||
if (!Objects.equals(ProjectCommon.FLAG, payMeetingSituation.getFlag())) {
|
||||
signUpSendMessage(payMeetingSituation, payMeeting, payMeetingSituation1);
|
||||
signUpSendMessage(payMeetingSituation, payMeeting, payMeetingSituation1);
|
||||
}
|
||||
//Wasic国际研讨会报名成功短信消息
|
||||
sendWasicMessage(payMeeting,payMeetingSituation1);
|
||||
@@ -338,6 +345,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
//处理校验参会人信息
|
||||
payMeetingSituation.setAmountReceivable(new BigDecimal("0"));
|
||||
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation);
|
||||
payMeetingSituation1.setEstimatedArrivalDate(payMeeting.getStartTime());
|
||||
saveMeetingSituation(payMeetingSituation1);
|
||||
//处理打包
|
||||
//handlePack(payMeetingSituation1);
|
||||
@@ -1077,7 +1085,6 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
sendMessageService.SendMessageService(sendMessageDTO);
|
||||
}
|
||||
}
|
||||
|
||||
saveOrUpdate(payMeetingSituation1);
|
||||
//判断凭证是否修改
|
||||
String paymentRecord = oldObject.getPaymentRecord();
|
||||
@@ -1749,8 +1756,14 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
|
||||
@Override
|
||||
public Integer standardsCheckPhone(String meetingId, String phone) {
|
||||
Integer integer = baseMapper.standardsCheckPhone(meetingId, PasswordUtil.encrypt(phone));
|
||||
return integer;
|
||||
LambdaQueryWrapper<PayContactsManagement> 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<PayMeetingSituat
|
||||
meetingService.update(updateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashMap<String, Object> getMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch,
|
||||
Integer pageNo,
|
||||
Integer pageSize) {
|
||||
QueryWrapper<PayMeetingSituation> query = getPayMeetingSituationQueryWrapper(metingPackStatisticsSearch);
|
||||
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
|
||||
addOrder(metingPackStatisticsSearch, query);
|
||||
// 查看分页数据
|
||||
IPage<MeetingPackStatistics> pageList = payMeetingSituationMapper.getMeetingPackStatistics(page,query);
|
||||
List<MeetingPackStatistics> 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<PayMeetingSituation> querySum = getPayMeetingSituationQueryWrapper(metingPackStatisticsSearch);
|
||||
MeetingPackStatistics count = payMeetingSituationMapper.getMeetingPackStatisticsCount(querySum);
|
||||
HashMap<String, Object> 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<PayMeetingSituation> query = getPayMeetingSituationQueryWrapper(metingPackStatisticsSearch);
|
||||
addOrder(metingPackStatisticsSearch, query);
|
||||
List<MeetingPackStatistics> 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<PayMeetingSituation> getPayMeetingSituationQueryWrapper(MeetingPackStatisticsSearch metingPackStatisticsSearch) {
|
||||
QueryWrapper<PayMeetingSituation> 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<PayMeetingSituation> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+48
-5
@@ -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<PayMemberP
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<PayMemberProjectSubitem> 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<PayMemberP
|
||||
@ApiOperation(value = "会员项目成员表-添加", notes = "会员项目成员表-添加")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<?> 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<PayMemberP
|
||||
@ApiOperation(value = "会员项目成员表-编辑", notes = "会员项目成员表-编辑")
|
||||
@PostMapping(value = "/edit")
|
||||
public Result<?> 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<PayMemberP
|
||||
projectSubitemExcel.setProjectId(projectId);
|
||||
PayMemberProjectSubitem projectSubitem = new PayMemberProjectSubitem();
|
||||
errorMessage.addAll(ValidUtil.validateReturnListWithNum(projectSubitemExcel,errorRowNum));
|
||||
|
||||
// 校验预估到账日期
|
||||
String estimatedArrivalDate = projectSubitemExcel.getEstimatedArrivalDate();
|
||||
if (Objects.isNull(estimatedArrivalDate)) {
|
||||
errorMessage.add("第" + errorRowNum + "行:预估到账日期不能为空");
|
||||
}else {
|
||||
try {
|
||||
LocalDate.parse(estimatedArrivalDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||
}catch (Exception e) {
|
||||
errorMessage.add("第" + errorRowNum + "行:预估到账日期格式不正确");
|
||||
}
|
||||
}
|
||||
//待确收金额
|
||||
String amountReceivable = projectSubitemExcel.getAmountReceivable();
|
||||
if (errorMessage.isEmpty()) {
|
||||
@@ -320,11 +356,18 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
|
||||
//复制属性
|
||||
BeanUtils.copyProperties(projectSubitemExcel, projectSubitem);
|
||||
|
||||
try {
|
||||
//ValidUtil.validate(projectSubitem);
|
||||
memberProjectSubitemService.add(projectSubitem);
|
||||
} catch (JeroBootException e) {
|
||||
errorMessage.add("第" + errorRowNum + "行:" + e.getMessage());
|
||||
// 给税率填充默认值 6%
|
||||
if (Objects.isNull(projectSubitem.getTaxRate())) {
|
||||
projectSubitem.setTaxRate(new BigDecimal("0.06"));
|
||||
}
|
||||
|
||||
if (errorMessage.isEmpty()) {
|
||||
try {
|
||||
//ValidUtil.validate(projectSubitem);
|
||||
memberProjectSubitemService.add(projectSubitem);
|
||||
} catch (JeroBootException e) {
|
||||
errorMessage.add("第" + errorRowNum + "行:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!errorMessage.isEmpty()) {
|
||||
|
||||
+19
@@ -385,5 +385,24 @@ public class PayMemberProjectSubitem implements Serializable {
|
||||
//@TableField(exist = false)
|
||||
//private String postContactName;
|
||||
|
||||
/**预估到账日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "预估到账日期")
|
||||
@Excel(name = "预估到账日期", width = 15,orderNum = "9")
|
||||
private String estimatedArrivalDate;
|
||||
|
||||
/**预计到账开始日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "预计到账开始的日期")
|
||||
@TableField(exist = false)
|
||||
private String estimatedArrivalStartDate;
|
||||
|
||||
/**预计到账结束日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "预计到账结束的日期")
|
||||
@TableField(exist = false)
|
||||
private String estimatedArrivalEndDate;
|
||||
}
|
||||
|
||||
+4
@@ -8,6 +8,8 @@ import com.jero.member.entity.PayMemberProjectSubitem;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 会员项目_subitem
|
||||
* @Author: jero-boot
|
||||
@@ -18,5 +20,7 @@ public interface PayMemberProjectSubitemMapper extends BaseMapper<PayMemberProje
|
||||
|
||||
IPage<PayMemberProjectSubitem> queryPageListCompany(Page<PayMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
||||
|
||||
List<PayMemberProjectSubitem> queryPageListCompany(@Param(Constants.WRAPPER) QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
||||
|
||||
IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
||||
}
|
||||
|
||||
+34
-1
@@ -33,7 +33,24 @@
|
||||
<result column="particular_year" property="particularYear"/>
|
||||
<result column="director_name" property="directorName" />
|
||||
<result column="payment_status" property="paymentStatus" />
|
||||
<result column="affirm_income" property="affirmIncome"/>
|
||||
<result column="confirm_amount" property="confirmAmount"/>
|
||||
<result column="confirm_no_tax_amount" property="confirmNoTaxAmount"/>
|
||||
<result column="confirm_tax" property="confirmTax"/>
|
||||
<result column="estimated_arrival_date" property="estimatedArrivalDate"/>
|
||||
<result column="invoice_amount" property="invoiceAmount"/>
|
||||
<result column="invoice_no_tax_amount" property="invoiceNoTaxAmount"/>
|
||||
<result column="invoice_tax" property="invoiceTax"/>
|
||||
<result column="no_tax_amount" property="noTaxAmount"/>
|
||||
<result column="paid_no_tax_amount" property="paidNoTaxAmount"/>
|
||||
<result column="paid_tax" property="paidTax"/>
|
||||
<result column="post_company_id" property="postCompanyId"/>
|
||||
<result column="tax" property="tax"/>
|
||||
<result column="tax_rate" property="taxRate"/>
|
||||
</resultMap>
|
||||
<sql id="a">
|
||||
|
||||
</sql>
|
||||
|
||||
<select id="queryPageListCompany" resultMap="MemberProjectSubitemResultMap">
|
||||
select pmps.*,pmp.project_name,pmp.particular_year,pmp.director_id as director_name from pay_member_project_subitem pmps
|
||||
@@ -42,7 +59,23 @@
|
||||
</select>
|
||||
|
||||
<select id="getPage" resultMap="MemberProjectSubitemResultMap">
|
||||
select pmps.* from pay_member_project_subitem pmps left join pay_member_project pmp on pmps.project_id = pmp.id
|
||||
select pmps.id,pmps.create_by,pmps.create_time,pmps.update_by,pmps.update_time,pmps.project_id,pmps.company_id,pmps.company_temporary_id,
|
||||
if(pmps.company_name = pcm.company_name, pmps.company_name, concat(pmps.company_name,'(更名为',pcm.company_name,')')) as company_name,
|
||||
pmps.company_contact_id,pmps.company_contact_temporary_id,pmps.company_contact_name,pmps.post_contact_id,
|
||||
pmps.post_contact_temporary_id,
|
||||
pmps.post_contact_name,pmps.amount_receivable,pmps.paid_amount,pmps.confirm_amount,pmps.payment_method,pmps.charge_notice_no,
|
||||
pmps.charge_notice_file_id,pmps.contract_no,pmps.remark,pmps.pack,pmps.need_invoice,pmps.in_account,pmps.make_invoice,
|
||||
pmps.mail,pmps.invoice_amount,pmps.payment_status,pmps.affirm_income,pmps.confirm_tax,pmps.confirm_no_tax_amount,pmps.paid_tax,pmps.paid_no_tax_amount,
|
||||
pmps.invoice_tax,pmps.invoice_no_tax_amount,pmps.tax_rate,pmps.tax,pmps.no_tax_amount,pmps.post_company_id,
|
||||
pmps.estimated_arrival_date
|
||||
from pay_member_project_subitem pmps
|
||||
left join pay_member_project pmp on pmps.project_id = pmp.id
|
||||
left join pay_company_management_temporary pcmt on pmps.company_temporary_id = pcmt.id
|
||||
left join pay_company_management pcm on pcmt.company_id = pcm.id
|
||||
${ew.customSqlSegment}
|
||||
|
||||
<where>
|
||||
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
+2
@@ -70,6 +70,8 @@ public interface IPayMemberProjectSubitemService extends IService<PayMemberProje
|
||||
|
||||
IPage<PayMemberProjectSubitem> queryPageListCompany(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
||||
|
||||
List<PayMemberProjectSubitem> queryPageListCompany(QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
||||
|
||||
IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper);
|
||||
|
||||
void check(String subitemId, String permission);
|
||||
|
||||
+16
-12
@@ -328,25 +328,24 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
|
||||
}
|
||||
|
||||
// 联系人id != 联系人模板id 变更
|
||||
if(!Objects.equals(payMemberProjectSubitem.getCompanyContactId(),payMemberProjectSubitemOld.getCompanyContactId())){
|
||||
// 联系人
|
||||
PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId());
|
||||
if(Objects.isNull(contactsName)){
|
||||
throw new JeroBootException("联系人名称为空!");
|
||||
}
|
||||
payMemberProjectSubitem.setCompanyContactTemporaryId(contactsName.getId());
|
||||
payMemberProjectSubitem.setCompanyContactName(contactsName.getName());
|
||||
contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyContactTemporaryId());
|
||||
PayContactsManagementTemporary companyContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId());
|
||||
if(Objects.isNull(companyContact)){
|
||||
throw new JeroBootException("联系人名称为空!");
|
||||
}
|
||||
payMemberProjectSubitem.setCompanyContactTemporaryId(companyContact.getId());
|
||||
payMemberProjectSubitem.setCompanyContactName(companyContact.getName());
|
||||
contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyContactTemporaryId());
|
||||
|
||||
// 邮寄联系人id != 邮寄联系人模板id 变更
|
||||
if(!Objects.equals(payMemberProjectSubitem.getPostContactId(),payMemberProjectSubitemOld.getPostContactId())){
|
||||
// 联系人
|
||||
PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId());
|
||||
if(Objects.isNull(contactsName)){
|
||||
PayContactsManagementTemporary postContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId());
|
||||
if(Objects.isNull(postContact)){
|
||||
throw new JeroBootException("邮寄联系人为空!");
|
||||
}
|
||||
payMemberProjectSubitem.setPostContactTemporaryId(contactsName.getId());
|
||||
payMemberProjectSubitem.setPostContactName(contactsName.getName());
|
||||
payMemberProjectSubitem.setPostContactTemporaryId(postContact.getId());
|
||||
payMemberProjectSubitem.setPostContactName(postContact.getName());
|
||||
contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getPostContactTemporaryId());
|
||||
}
|
||||
|
||||
@@ -497,6 +496,11 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
|
||||
return baseMapper.queryPageListCompany(page,queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PayMemberProjectSubitem> queryPageListCompany(QueryWrapper<PayMemberProjectSubitem> queryWrapper) {
|
||||
return baseMapper.queryPageListCompany(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, QueryWrapper<PayMemberProjectSubitem> queryWrapper) {
|
||||
return baseMapper.getPage(page, queryWrapper);
|
||||
|
||||
+29
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
+24
-15
@@ -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<PayConfir
|
||||
return super.importExcel(request, response, PayConfirmPaymentRecord.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认收入-撤销
|
||||
*/
|
||||
@RequiresPermissions({"incomePaymentAndInvoicing:revokeConfirm"})
|
||||
@AutoLog(value = "确认来款-撤销")
|
||||
@ApiOperation(value="确认来款-撤销", notes="确认来款-撤销")
|
||||
@PostMapping(value = "/backIncoming")
|
||||
public Result<?> backIncoming(@RequestParam(name = "id") String id) {
|
||||
payConfirmPaymentRecordService.backIncoming(id);
|
||||
return Result.OK();
|
||||
}
|
||||
}
|
||||
|
||||
+13
-3
@@ -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<PayPaymentRecord,
|
||||
String projectType, String paymentDate, String paidInvoicStatus) {
|
||||
return payPaymentRecordService.exportXls(request, payCommonProject, projectType, paymentDate, paidInvoicStatus, PayCommonProjectOutput.class, "到账开票");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 开票-撤销
|
||||
*/
|
||||
@AutoLog(value = "开票-撤销")
|
||||
@ApiOperation(value = "开票-撤销", notes = "开票-撤销")
|
||||
@PostMapping(value = "/backInvoice")
|
||||
@RequiresPermissions("incomePaymentAndInvoicing:revokeInvoice")
|
||||
public Result<?> backInvoice(@RequestParam String id) {
|
||||
payMailBillService.backInvoice(id);
|
||||
return Result.OK();
|
||||
}
|
||||
}
|
||||
|
||||
+9
-7
@@ -47,11 +47,11 @@
|
||||
</resultMap>
|
||||
<select id="mainList" resultType="com.jero.project.entity.PayCommonProject">
|
||||
select p.id,p.charge_project, p.charge_use, p.principal_id,p.principal_name,p.charge_company_id,p.charge_company_temporary_name,p.receivable_amount,p.paid_amount,p.need_invoice,p.pack,p.in_account,p.make_invoice,p.mail,p.create_time,p.projectType,
|
||||
p.invoice_amount,p.mail_contacts_id,p.register_check_result,p.contacts_temporary_name,p.payment_status,p.charge_company_temporary_id,p.confirm_amount,p.affirm_income
|
||||
p.invoice_amount,p.mail_contacts_id,p.register_check_result,p.contacts_temporary_name,p.payment_status,p.charge_company_temporary_id,p.confirm_amount,p.affirm_income,p.admin_add_flag
|
||||
from
|
||||
(<!-- 普通项目-->
|
||||
select c.id,c.charge_project, c.charge_use, c.principal_id,su.realname as principal_name,c.charge_company_id,c.charge_company_temporary_name,c.receivable_amount,c.paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType,
|
||||
c.invoice_amount,c.mail_contacts_id,'' as register_check_result,c.contacts_temporary_name,c.payment_status,c.charge_company_temporary_id,c.confirm_amount,c.affirm_income
|
||||
c.invoice_amount,c.mail_contacts_id,'' as register_check_result,c.contacts_temporary_name,c.payment_status,c.charge_company_temporary_id,c.confirm_amount,c.affirm_income,0 as admin_add_flag
|
||||
from pay_common_project c
|
||||
left join sys_user su on c.principal_id = su.id
|
||||
where
|
||||
@@ -85,7 +85,7 @@
|
||||
<!--工作组项目-->
|
||||
UNION ALL
|
||||
select gsub.id,g.working_group_project, gsub.charge_use, g.principal_id_a,su.realname,gsub.charge_company_id,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,
|
||||
gsub.invoice_amount,gsub.mail_contacts_id,'' as register_check_result,gsubc.contacts_temporary_name as contacts_temporary_name_one,gsub.payment_status,gsub.charge_company_temporary_id,gsub.confirm_amount,gsub.affirm_income
|
||||
gsub.invoice_amount,gsub.mail_contacts_id,'' as register_check_result,gsubc.contacts_temporary_name as contacts_temporary_name_one,gsub.payment_status,gsub.charge_company_temporary_id,gsub.confirm_amount,gsub.affirm_income,0
|
||||
from pay_working_group g
|
||||
left join sys_user su on g.principal_id_a = su.id
|
||||
inner join pay_working_group_subitem gsub on g.id = gsub.working_group_id
|
||||
@@ -121,7 +121,7 @@
|
||||
<!-- 会议项目-->
|
||||
UNION ALL
|
||||
select sit.id,meeting.meeting_name,sit.charge_use, meeting.director_id, su.realname,sit.company_id,sit.company_name,sit.amount_receivable,sit.paid_amount,sit.need_invoice,sit.pack,sit.in_account,sit.make_invoice,sit.mail,sit.create_time,3,
|
||||
sit.invoice_amount,sit.post_contact_id,sit.register_check_result,sit.company_contact_name,sit.payment_status,sit.company_id,sit.confirm_amount,sit.affirm_income
|
||||
sit.invoice_amount,sit.post_contact_id,sit.register_check_result,sit.company_contact_name,sit.payment_status,sit.company_id,sit.confirm_amount,sit.affirm_income,0
|
||||
from pay_meeting meeting
|
||||
inner join pay_meeting_situation sit on meeting.id = sit.meeting_id
|
||||
left join sys_user su on su.id = meeting.director_id
|
||||
@@ -156,7 +156,7 @@
|
||||
<!-- 会员项目-->
|
||||
UNION ALL
|
||||
select msub.id,pmp.project_name,msub.charge_use,pmp.director_id,su.realname,msub.company_id,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4,
|
||||
msub.invoice_amount,msub.post_contact_id,'' as register_check_result,msub.company_contact_name,msub.payment_status,msub.company_temporary_id,msub.confirm_amount,msub.affirm_income
|
||||
msub.invoice_amount,msub.post_contact_id,'' as register_check_result,msub.company_contact_name,msub.payment_status,msub.company_temporary_id,msub.confirm_amount,msub.affirm_income,0
|
||||
from pay_member_project pmp
|
||||
inner join pay_member_project_subitem msub on pmp.id=msub.project_id
|
||||
left join sys_user su on su.id = pmp.director_id
|
||||
@@ -193,7 +193,8 @@
|
||||
select tmsub.id,tmember.project_name,tmsub.charge_use,tmember.director_id,su.realname,tmsub.company_id,
|
||||
if(tmsub.company_name = tmsub.header_name or tmsub.header_name is null, tmsub.company_name , concat(tmsub.company_name,'(代付)')) as company_name,
|
||||
tmsub.amount_receivable,tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5,
|
||||
tmsub.invoice_amount,tmsub.post_contact_id,'' as register_check_result,tmsub.liaison_man,tmsub.payment_status,tmsub.company_id,tmsub.confirm_amount,tmsub.affirm_income
|
||||
tmsub.invoice_amount,tmsub.post_contact_id,'' as register_check_result,tmsub.liaison_man,tmsub.payment_status,tmsub.company_id,tmsub.confirm_amount,tmsub.affirm_income,
|
||||
tmsub.admin_add_flag
|
||||
from tb_member_project tmember
|
||||
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
|
||||
left join sys_user su on su.id = tmember.director_id
|
||||
@@ -234,7 +235,8 @@
|
||||
select tcp.id,tmember.project_name,tcp.charge_use,tmember.director_id,su.realname,tcp.company_id,
|
||||
if(tcp.company_name = tcp.header_name or tcp.header_name is null, tcp.company_name , concat(tcp.company_name,'(代付)')) as company_name,
|
||||
tcp.amount_receivable,tcp.paid_amount,tcp.invoice_requirements,tcp.pack,tcp.in_account,tcp.make_invoice,tcp.mail,tcp.create_time,6,
|
||||
tcp.invoice_amount,tcp.post_contact_id,'' as register_check_result,tcp.liaison_man,tcp.payment_status,tcp.company_id,tcp.confirm_amount,tcp.affirm_income
|
||||
tcp.invoice_amount,tcp.post_contact_id,'' as register_check_result,tcp.liaison_man,tcp.payment_status,tcp.company_id,tcp.confirm_amount,tcp.affirm_income,
|
||||
tcp.admin_add_flag
|
||||
from tb_member_project tmember
|
||||
inner join tb_certificate_payment tcp on tmember.id=tcp.project_id
|
||||
left join sys_user su on su.id = tmember.director_id
|
||||
|
||||
+8
@@ -81,6 +81,14 @@ public interface IPayPaymentRecordService extends IService<PayPaymentRecord> {
|
||||
* @return
|
||||
*/
|
||||
BigDecimal addPaidAmount(BigDecimal paidAmount,BigDecimal amountReceived);
|
||||
|
||||
/**
|
||||
* 减去实收并四舍五入
|
||||
* @param paidAmount 实收
|
||||
* @param amountReceived 到账
|
||||
* @return
|
||||
*/
|
||||
BigDecimal subtractPaidAmount(BigDecimal paidAmount,BigDecimal amountReceived);
|
||||
/**
|
||||
* 得到到账状态
|
||||
* @param receivableAmount 应收
|
||||
|
||||
+145
-5
@@ -1,30 +1,37 @@
|
||||
package com.jero.payment.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.config.StaticConfig;
|
||||
import com.jero.contract.common.PayIncomeContractCommon;
|
||||
import com.jero.meeting.entity.PayMeetingSituation;
|
||||
import com.jero.meeting.mapper.PayMeetingSituationMapper;
|
||||
import com.jero.member.entity.*;
|
||||
import com.jero.member.entity.PayMemberProjectSubitem;
|
||||
import com.jero.member.entity.TbCertificatePayment;
|
||||
import com.jero.member.entity.TbMemberProjectSubitem;
|
||||
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
|
||||
import com.jero.member.mapper.TbCertificatePaymentMapper;
|
||||
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
|
||||
import com.jero.payment.entity.PayConfirmPaymentRecord;
|
||||
import com.jero.payment.mapper.PayConfirmPaymentRecordMapper;
|
||||
import com.jero.payment.mapper.PayPaymentRecordMapper;
|
||||
import com.jero.payment.service.IPayPaymentRecordService;
|
||||
import com.jero.project.entity.PayCommonProject;
|
||||
import com.jero.project.entity.PayWorkingGroupSubItem;
|
||||
import com.jero.project.mapper.PayCommonProjectMapper;
|
||||
import com.jero.project.mapper.PayWorkingGroupSubItemMapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.payment.entity.PayConfirmPaymentRecord;
|
||||
import com.jero.payment.mapper.PayConfirmPaymentRecordMapper;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
@@ -315,7 +322,140 @@ public class PayConfirmPaymentRecordService extends ServiceImpl<PayConfirmPaymen
|
||||
}
|
||||
|
||||
}
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
public void backIncoming(String id){
|
||||
if(StringUtils.isBlank(id)){
|
||||
throw new JeroBootException("确认来款id不能为空");
|
||||
}
|
||||
PayConfirmPaymentRecord obj = getById(id);
|
||||
if(Objects.isNull(obj)){
|
||||
throw new JeroBootException("未找到对应数据");
|
||||
}
|
||||
// 标协会员缴费、证书缴费 先不做此功能的开发
|
||||
if(Arrays.asList("5","6").contains(obj.getProjectType())){
|
||||
throw new JeroBootException("标协会员缴费、证书缴费项目不可撤销");
|
||||
}
|
||||
// 删除数据
|
||||
removeById(id);
|
||||
// 更新对应项目金
|
||||
updateConfirmAmountBackIncoming(obj);
|
||||
|
||||
}
|
||||
|
||||
private void updateConfirmAmountBackIncoming(PayConfirmPaymentRecord payConfirmPaymentRecord) {
|
||||
String projectId = payConfirmPaymentRecord.getProjectId();
|
||||
String projectType = payConfirmPaymentRecord.getProjectType();
|
||||
//获得金额的和
|
||||
PayConfirmPaymentRecord confirmPaymentRecord = baseMapper.selectOneByProjectIdAndProjectType(projectId, projectType);
|
||||
BigDecimal confirmAmount = new BigDecimal("0");
|
||||
BigDecimal noTaxAmount = new BigDecimal("0");
|
||||
BigDecimal tax = new BigDecimal("0");
|
||||
if(!Objects.isNull(confirmPaymentRecord)){
|
||||
confirmAmount = confirmPaymentRecord.getAmountReceived();
|
||||
noTaxAmount = confirmPaymentRecord.getNoTaxAmount();
|
||||
tax = confirmPaymentRecord.getTax();
|
||||
}
|
||||
|
||||
Integer affirmIncome;
|
||||
switch (projectType){
|
||||
|
||||
// 普通项目
|
||||
case PayIncomeContractCommon.PROJECT_TYPE1:
|
||||
|
||||
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(projectId);
|
||||
if (payCommonProject == null) {
|
||||
break;
|
||||
}
|
||||
//更新主列表
|
||||
payCommonProject.setConfirmAmount(confirmAmount);
|
||||
payCommonProject.setConfirmTax(tax);
|
||||
payCommonProject.setConfirmNoTaxAmount(noTaxAmount);
|
||||
affirmIncome = getAffirmIncome(payCommonProject.getReceivableAmount(), confirmAmount);
|
||||
payCommonProject.setAffirmIncome(affirmIncome);
|
||||
payCommonProjectMapper.updateById(payCommonProject);
|
||||
|
||||
break;
|
||||
// 工作组项目
|
||||
case PayIncomeContractCommon.PROJECT_TYPE2:
|
||||
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(projectId);
|
||||
if (payWorking == null) {
|
||||
break;
|
||||
}
|
||||
//更新主列表
|
||||
payWorking.setConfirmAmount(confirmAmount);
|
||||
payWorking.setConfirmTax(tax);
|
||||
payWorking.setConfirmNoTaxAmount(noTaxAmount);
|
||||
affirmIncome = getAffirmIncome(payWorking.getReceivableAmount(), confirmAmount);
|
||||
payWorking.setAffirmIncome(affirmIncome);
|
||||
payWorkingGroupSubItemMapper.updateById(payWorking);
|
||||
|
||||
break;
|
||||
//会议项目
|
||||
case PayIncomeContractCommon.PROJECT_TYPE3:
|
||||
|
||||
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(projectId);
|
||||
if (meeting == null) {
|
||||
break;
|
||||
}
|
||||
//更新主列表
|
||||
meeting.setConfirmAmount(confirmAmount);
|
||||
meeting.setConfirmTax(tax);
|
||||
meeting.setConfirmNoTaxAmount(noTaxAmount);
|
||||
affirmIncome = getAffirmIncome(meeting.getAmountReceivable(), confirmAmount);
|
||||
meeting.setAffirmIncome(affirmIncome);
|
||||
payMeetingSituationMapper.updateById(meeting);
|
||||
|
||||
break;
|
||||
//会员项目
|
||||
case PayIncomeContractCommon.PROJECT_TYPE4:
|
||||
|
||||
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(projectId);
|
||||
if (member == null) {
|
||||
break;
|
||||
}
|
||||
//更新主列表
|
||||
member.setConfirmAmount(confirmAmount);
|
||||
member.setConfirmTax(tax);
|
||||
member.setConfirmNoTaxAmount(noTaxAmount);
|
||||
affirmIncome = getAffirmIncome(member.getAmountReceivable(), confirmAmount);
|
||||
member.setAffirmIncome(affirmIncome);
|
||||
payMemberProjectSubitemMapper.updateById(member);
|
||||
|
||||
break;
|
||||
//标协会员
|
||||
case PayIncomeContractCommon.PROJECT_TYPE5:
|
||||
|
||||
TbMemberProjectSubitem tbMember = tbMemberProjectSubitemMapper.selectById(projectId);
|
||||
if (tbMember == null) {
|
||||
break;
|
||||
}
|
||||
//更新主列表
|
||||
tbMember.setConfirmAmount(confirmAmount);
|
||||
tbMember.setConfirmTax(tax);
|
||||
tbMember.setConfirmNoTaxAmount(noTaxAmount);
|
||||
affirmIncome = getAffirmIncome(tbMember.getAmountReceivable(), confirmAmount);
|
||||
tbMember.setAffirmIncome(affirmIncome);
|
||||
tbMemberProjectSubitemMapper.updateById(tbMember);
|
||||
break;
|
||||
//标协证书
|
||||
case PayIncomeContractCommon.PROJECT_TYPE6:
|
||||
|
||||
TbCertificatePayment tbMemberCertificate = certificatePaymentMapper.selectById(projectId);
|
||||
if (tbMemberCertificate == null) {
|
||||
break;
|
||||
}
|
||||
//更新主列表
|
||||
tbMemberCertificate.setConfirmAmount(confirmAmount);
|
||||
tbMemberCertificate.setConfirmTax(tax);
|
||||
tbMemberCertificate.setConfirmNoTaxAmount(noTaxAmount);
|
||||
affirmIncome = getAffirmIncome(tbMemberCertificate.getAmountReceivable(), confirmAmount);
|
||||
tbMemberCertificate.setAffirmIncome(affirmIncome);
|
||||
certificatePaymentMapper.updateById(tbMemberCertificate);
|
||||
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+27
-10
@@ -1,6 +1,6 @@
|
||||
package com.jero.payment.service.impl;
|
||||
|
||||
import com.alibaba.druid.sql.visitor.functions.If;
|
||||
import cn.hutool.core.collection.CollStreamUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -77,7 +77,6 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.validation.constraints.DecimalMax;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.SimpleDateFormat;
|
||||
@@ -157,26 +156,26 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
||||
|
||||
//查审核记录表,每阶段最新的一条
|
||||
LambdaQueryWrapper<PayPaymentRecordSub> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.select(PayPaymentRecordSub::getProjectId,PayPaymentRecordSub::getPaymentStatus);
|
||||
wrapper.eq(PayPaymentRecordSub::getLastSign, LastSignEnum.LAST.getCode());
|
||||
wrapper.eq(PayPaymentRecordSub::getDelFlag, PayProjectCommon.NO);
|
||||
List<PayPaymentRecordSub> RecordSubList = payPaymentCheckService.list(wrapper);
|
||||
|
||||
Map<String, String> projectIdPaymentStatusMap = CollStreamUtil.toMap(RecordSubList, PayPaymentRecordSub::getProjectId, PayPaymentRecordSub::getPaymentStatus);
|
||||
for (PayCommonProject commonProject : list) {
|
||||
//如果是会议类型,就查询会议的具体类型
|
||||
String id = commonProject.getId();
|
||||
if (commonProject.getProjectType().equals(Integer.parseInt(ProjectCommon.PROJECT_TYPE3))) {
|
||||
String id = commonProject.getId();
|
||||
PayMeeting payMeeting = payMeetingService.getMeetingBySituationId(id);
|
||||
commonProject.setMeetingType(payMeeting.getMeetingType());
|
||||
commonProject.setSituationId(id);
|
||||
}
|
||||
//插入待审核状态,供前端判断是否显示审核按钮
|
||||
//先查审核记录表有没有待审核的
|
||||
for(PayPaymentRecordSub recordSub : RecordSubList){
|
||||
if(commonProject.getId().equals(recordSub.getProjectId())){
|
||||
if(PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(recordSub.getPaymentStatus())){
|
||||
commonProject.setCheckPaymentStatus(recordSub.getPaymentStatus());
|
||||
continue;
|
||||
}
|
||||
if(projectIdPaymentStatusMap.containsKey(id)){
|
||||
String paymentStatus = projectIdPaymentStatusMap.get(id);
|
||||
if(PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(paymentStatus)){
|
||||
commonProject.setCheckPaymentStatus(paymentStatus);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
//再查项目主表状态是不是待审核
|
||||
@@ -880,6 +879,24 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
|
||||
return paidAmount.add(amountReceived).setScale(2, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
||||
/**
|
||||
* 减去实收并四舍五入
|
||||
* @param paidAmount 实收
|
||||
* @param amountReceived 到账
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public BigDecimal subtractPaidAmount(BigDecimal paidAmount,BigDecimal amountReceived){
|
||||
|
||||
if(paidAmount == null){
|
||||
paidAmount = new BigDecimal("0");
|
||||
}
|
||||
if (amountReceived == null){
|
||||
amountReceived = BigDecimal.ZERO;
|
||||
}
|
||||
return paidAmount.subtract(amountReceived).setScale(2, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
||||
/**
|
||||
* 相减
|
||||
* @param paidAmount 实收
|
||||
|
||||
+6
@@ -371,6 +371,9 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
|
||||
@ApiOperation(value="普通项目管理-添加", notes="普通项目管理-添加")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<?> add(@RequestBody PayCommonProject payCommonProject) {
|
||||
if (Objects.isNull(payCommonProject.getEstimatedArrivalDate())) {
|
||||
return Result.error("预估到账日期不能为空");
|
||||
}
|
||||
StringBuilder msg = ValidUtil.validateAll(payCommonProject);
|
||||
if(!StringUtils.isBlank(msg)){
|
||||
return Result.error(msg.toString());
|
||||
@@ -390,6 +393,9 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
|
||||
@ApiOperation(value="普通项目管理-编辑", notes="普通项目管理-编辑")
|
||||
@PostMapping(value = "/edit")
|
||||
public Result<?> edit(@RequestBody PayCommonProject payCommonProject) {
|
||||
if (Objects.isNull(payCommonProject.getEstimatedArrivalDate())) {
|
||||
return Result.error("预估到账日期不能为空");
|
||||
}
|
||||
StringBuilder msg = ValidUtil.validateAll(payCommonProject);
|
||||
if(!StringUtils.isBlank(msg)){
|
||||
return Result.error(msg.toString());
|
||||
|
||||
+6
@@ -357,6 +357,9 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
|
||||
@ApiOperation(value = "工作组成员-添加", notes = "工作组成员-添加")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<?> add(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) {
|
||||
if (Objects.isNull(payWorkingGroupSubItem.getEstimatedArrivalDate())) {
|
||||
return Result.error("预估到账日期不能为空");
|
||||
}
|
||||
StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem);
|
||||
if (!StringUtils.isBlank(msg)) {
|
||||
return Result.error(msg.toString());
|
||||
@@ -376,6 +379,9 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
|
||||
@ApiOperation(value = "工作组成员-编辑", notes = "工作组成员-编辑")
|
||||
@PostMapping(value = "/edit")
|
||||
public Result<?> edit(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) {
|
||||
if (Objects.isNull(payWorkingGroupSubItem.getEstimatedArrivalDate())) {
|
||||
return Result.error("预估到账日期不能为空");
|
||||
}
|
||||
StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem);
|
||||
if (!StringUtils.isBlank(msg)) {
|
||||
return Result.error(msg.toString());
|
||||
|
||||
+24
@@ -319,4 +319,28 @@ public class PayCommonProject implements Serializable {
|
||||
@ApiModelProperty(value = "未税金额")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private BigDecimal noTaxAmount;
|
||||
|
||||
/**预计到账日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "预计到账日期")
|
||||
private String estimatedArrivalDate;
|
||||
|
||||
|
||||
/**预计到账开始日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "预计到账开始的日期")
|
||||
@TableField(exist = false)
|
||||
private String estimatedArrivalStartDate;
|
||||
|
||||
/**预计到账结束日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "预计到账结束的日期")
|
||||
@TableField(exist = false)
|
||||
private String estimatedArrivalEndDate;
|
||||
|
||||
@TableField(exist = false)
|
||||
private Integer adminAddFlag;
|
||||
}
|
||||
|
||||
+25
@@ -19,6 +19,8 @@ import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -123,6 +125,14 @@ public class PayWorkingGroupSubItem implements Serializable {
|
||||
@DecimalMax(value = "9999999999.99",message = "待确收金额(元)格式错误")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private BigDecimal receivableAmount;
|
||||
|
||||
/**预估到账日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "预估到账日期")
|
||||
@Excel(name = "预估到账日期",width = 15,format = "yyyy-MM-dd")
|
||||
private String estimatedArrivalDate;
|
||||
|
||||
/**实收金额(元)*/
|
||||
@ApiModelProperty(value = "实收金额(元)")
|
||||
@DecimalMax(value = "9999999999.99",message = "实收金额(元)格式错误")
|
||||
@@ -162,6 +172,7 @@ public class PayWorkingGroupSubItem implements Serializable {
|
||||
/**收费通知文件id*/
|
||||
@ApiModelProperty(value = "收费通知文件id")
|
||||
private java.lang.String chargeNoticeId;
|
||||
|
||||
/**打包(1:是,0:否)*/
|
||||
@ApiModelProperty(value = "打包(1:是,0:否)")
|
||||
private java.lang.Integer pack;
|
||||
@@ -585,4 +596,18 @@ public class PayWorkingGroupSubItem implements Serializable {
|
||||
@ApiModelProperty(value = "标签")
|
||||
@Size(max = 32,message = "标签名称长度不能大于50个字符")
|
||||
private String label;
|
||||
|
||||
/**预计到账开始日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "预计到账开始的日期")
|
||||
@TableField(exist = false)
|
||||
private String estimatedArrivalStartDate;
|
||||
|
||||
/**预计到账结束日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "预计到账结束的日期")
|
||||
@TableField(exist = false)
|
||||
private String estimatedArrivalEndDate;
|
||||
}
|
||||
|
||||
+3
@@ -49,4 +49,7 @@ public class PayWorkingGroupSubletSearch {
|
||||
|
||||
@ApiModelProperty(value = "项目负责人id")
|
||||
private String principalNameId;
|
||||
|
||||
@ApiModelProperty(value = "是否打包")
|
||||
private String pack;
|
||||
}
|
||||
|
||||
+2
@@ -242,6 +242,8 @@ public interface PayWorkingGroupMapper extends BaseMapper<PayWorkingGroup> {
|
||||
|
||||
List<AllProjectStatistics> cumulativeListComeAllMoney(@Param("paymentYear") String paymentYear);
|
||||
|
||||
List<AllProjectStatistics> cumulativeListEstimatedArrivalMoney(@Param("paymentYear") String paymentYear);
|
||||
|
||||
BigDecimal invoiceAmount(@Param("start") Integer start, @Param("end") Integer end, @Param("departCode") String departCode);
|
||||
|
||||
IPage<AllProjectStatisticsOther> invoiceAmountList(Page<AllProjectStatistics> page, @Param("start") Integer start, @Param("end") Integer end, @Param("departCode") String departCode, @Param("column") String column, @Param("order") String order);
|
||||
|
||||
+5
@@ -1,6 +1,9 @@
|
||||
package com.jero.project.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
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.company.entity.PayContactsManagement;
|
||||
import com.jero.project.entity.PayWorkGroupSubletStatistics;
|
||||
@@ -59,4 +62,6 @@ public interface PayWorkingGroupSubItemMapper extends BaseMapper<PayWorkingGroup
|
||||
AllMoney queryPageList233(@Param("payWorkingGroupSubletSearch") PayWorkingGroupSubletSearch payWorkingGroupSubletSearch, @Param("id") String id);
|
||||
|
||||
IPage<PayWorkingGroupSubItem> publishReminderList(Page<PayWorkingGroupSubItem> page, @Param("payWorkingGroupSubItem") PayWorkingGroupSubItem payWorkingGroupSubItem);
|
||||
|
||||
List<PayWorkingGroupSubItem> queryList(@Param(Constants.WRAPPER) QueryWrapper<PayWorkingGroupSubItem> queryPayWorkingGroupSubItem);
|
||||
}
|
||||
|
||||
+12
-3
@@ -11,7 +11,7 @@
|
||||
su.realname as principal_name,
|
||||
pcp.charge_company_id,
|
||||
pcp.charge_company_temporary_id,
|
||||
pcp.charge_company_temporary_name,
|
||||
if(pcp.charge_company_temporary_name = pcm.company_name, pcp.charge_company_temporary_name, concat(pcp.charge_company_temporary_name,'(更名为',pcm.company_name,')')) as charge_company_temporary_name,
|
||||
pcp.charge_use,
|
||||
pcp.contacts_id,
|
||||
pcp.contacts_temporary_id,
|
||||
@@ -41,16 +41,19 @@
|
||||
pcp.payment_status,
|
||||
pcp.tax,
|
||||
pcp.tax_rate,
|
||||
pcp.no_tax_amount
|
||||
pcp.no_tax_amount,
|
||||
pcp.estimated_arrival_date
|
||||
FROM pay_common_project pcp
|
||||
left join sys_user su on pcp.principal_id = su.id
|
||||
LEFT JOIN pay_payment_record ppr ON ppr.project_id = pcp.id
|
||||
left join pay_company_management_temporary pcmt on pcp.charge_company_temporary_id = pcmt.id
|
||||
left join pay_company_management pcm on pcmt.company_id = pcm.id
|
||||
<where>
|
||||
<if test="payCommonProject.chargeProject != null and payCommonProject.chargeProject != ''">
|
||||
AND pcp.charge_project like concat('%',concat(#{payCommonProject.chargeProject},'%'))
|
||||
</if>
|
||||
<if test="payCommonProject.chargeCompanyTemporaryName != null and payCommonProject.chargeCompanyTemporaryName != ''">
|
||||
AND pcp.charge_company_temporary_name like concat('%',concat(#{payCommonProject.chargeCompanyTemporaryName},'%'))
|
||||
AND pcm.company_name like concat('%',concat(#{payCommonProject.chargeCompanyTemporaryName},'%'))
|
||||
</if>
|
||||
<if test="payCommonProject.contactsTemporaryName != null and payCommonProject.contactsTemporaryName != ''">
|
||||
AND pcp.contacts_temporary_name like concat('%',concat(#{payCommonProject.contactsTemporaryName},'%'))
|
||||
@@ -73,6 +76,12 @@
|
||||
<if test="payCommonProject.principal != null and payCommonProject.principal != ''">
|
||||
AND pcp.principal_id = #{payCommonProject.principal}
|
||||
</if>
|
||||
<if test="payCommonProject.estimatedArrivalStartDate != null">
|
||||
AND pcp.estimated_arrival_date >= #{payCommonProject.estimatedArrivalStartDate}
|
||||
</if>
|
||||
<if test="payCommonProject.estimatedArrivalEndDate != null">
|
||||
AND pcp.estimated_arrival_date <= #{payCommonProject.estimatedArrivalEndDate}
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY pcp.id ORDER BY pcp.create_time DESC
|
||||
</select>
|
||||
|
||||
+13
@@ -2522,4 +2522,17 @@
|
||||
</where>
|
||||
) a
|
||||
</select>
|
||||
<!-- 统计预计到账金额(应收金额) 预计到账日期 -->
|
||||
<select id="cumulativeListEstimatedArrivalMoney"
|
||||
resultType="com.jero.statistics.entity.AllProjectStatistics">
|
||||
select DATE_FORMAT(paymentDate, '%Y-%m') as paymentDate,sum(estimatedArrivalMoney) as estimatedArrivalMoney from (
|
||||
select receivable_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate from pay_common_project where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
|
||||
union all
|
||||
select receivable_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate from pay_working_group_subitem where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
|
||||
union all
|
||||
select amount_receivable as estimatedArrivalMoney,estimated_arrival_date as paymentDate from pay_meeting_situation where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
|
||||
union all
|
||||
select amount_receivable as estimatedArrivalMoney,estimated_arrival_date as paymentDate from pay_member_project_subitem where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
|
||||
) dataAll group by DATE_FORMAT(paymentDate, '%Y-%m') order by paymentDate
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
+24
-3
@@ -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,
|
||||
<!-- 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
|
||||
<where>
|
||||
pwgs.working_group_id = #{payWorkingGroupSubItem.workingGroupId}
|
||||
<if test="payWorkingGroupSubItem.chargeCompanyTemporaryName != null and payWorkingGroupSubItem.chargeCompanyTemporaryName != ''">
|
||||
AND pwgs.charge_company_temporary_name LIKE
|
||||
AND pcm.company_name LIKE
|
||||
concat('%',concat(#{payWorkingGroupSubItem.chargeCompanyTemporaryName},'%'))
|
||||
</if>
|
||||
<if test="paymentDate != null and paymentDate != ''">
|
||||
@@ -68,6 +72,12 @@
|
||||
<if test="payWorkingGroupSubItem.label != null and payWorkingGroupSubItem.label != ''">
|
||||
and label LIKE concat('%',#{payWorkingGroupSubItem.label},'%')
|
||||
</if>
|
||||
<if test="payWorkingGroupSubItem.estimatedArrivalStartDate != null">
|
||||
AND pwgs.estimated_arrival_date >= #{payWorkingGroupSubItem.estimatedArrivalStartDate}
|
||||
</if>
|
||||
<if test="payWorkingGroupSubItem.estimatedArrivalEndDate != null">
|
||||
AND pwgs.estimated_arrival_date <= #{payWorkingGroupSubItem.estimatedArrivalEndDate}
|
||||
</if>
|
||||
</where>
|
||||
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}, '%')
|
||||
</if>
|
||||
</if>-->
|
||||
<if test="payWorkingGroupSubletSearch.pack != null and payWorkingGroupSubletSearch.pack != ''">
|
||||
AND pack = #{payWorkingGroupSubletSearch.pack}
|
||||
</if>
|
||||
</where>
|
||||
group by id
|
||||
</select>
|
||||
@@ -251,6 +264,9 @@
|
||||
</if>
|
||||
</otherwise>
|
||||
</choose>
|
||||
<if test="payWorkingGroupSubletSearch.pack != null and payWorkingGroupSubletSearch.pack != ''">
|
||||
AND pack = #{payWorkingGroupSubletSearch.pack}
|
||||
</if>
|
||||
<!--<if test="payWorkingGroupSubletSearch.paymentYear != null and payWorkingGroupSubletSearch.paymentYear != ''">
|
||||
and DATE_FORMAT (pcpr.payment_date,'%Y') like concat(#{payWorkingGroupSubletSearch.paymentYear}, '%')
|
||||
<if test="payWorkingGroupSubletSearch.paymentMonth != null and payWorkingGroupSubletSearch.paymentMonth != ''">
|
||||
@@ -346,4 +362,9 @@
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="queryList" resultType="com.jero.project.entity.PayWorkingGroupSubItem">
|
||||
select pwgs.* from pay_working_group_subitem pwgs
|
||||
left join pay_working_group pwg ON pwgs.working_group_id = pwg.id
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
+4
@@ -1,5 +1,7 @@
|
||||
package com.jero.project.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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;
|
||||
@@ -123,4 +125,6 @@ public interface IPayWorkingGroupSubItemService extends IService<PayWorkingGroup
|
||||
void setLabel(SetLabelVO setLabelVO);
|
||||
|
||||
void deleteLabel(SetLabelVO setLabelVO);
|
||||
|
||||
List<PayWorkingGroupSubItem> queryList(QueryWrapper<PayWorkingGroupSubItem> queryPayWorkingGroupSubItem);
|
||||
}
|
||||
|
||||
+4
-4
@@ -93,7 +93,7 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional()
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void addPayCommonProject(PayCommonProject payCommonProject) {
|
||||
try {
|
||||
// 编辑保存前再次校验来款项目是否存在
|
||||
@@ -163,7 +163,7 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void editPayCommonProject(PayCommonProject payCommonProject) {
|
||||
PayCommonProject payCommonProjectOld = payCommonProjectService.getById(payCommonProject);
|
||||
if(Objects.isNull(payCommonProjectOld)){
|
||||
@@ -266,7 +266,7 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void delete(String id) {
|
||||
if(StringUtils.isBlank(id)){
|
||||
throw new JeroBootException("id不能为空!");
|
||||
@@ -279,7 +279,7 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteBatch(String ids) {
|
||||
if(StringUtils.isBlank(ids)){
|
||||
throw new JeroBootException("id不能为空!");
|
||||
|
||||
+26
-5
@@ -251,7 +251,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
|
||||
if(Objects.isNull(payCompanyManagementTemporary)){
|
||||
payCompanyManagementTemporary = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(p.getChargeCompanyId());
|
||||
}else{
|
||||
payCompanyManagementTemporary.setCompanyId(payCompanyManagementTemporary.getId());
|
||||
payCompanyManagementTemporary.setCompanyId(payCompanyManagementTemporary.getCompanyId());
|
||||
payCompanyManagementTemporary.setId(null);
|
||||
payCompanyManagementTemporaryService.save(payCompanyManagementTemporary);
|
||||
}
|
||||
@@ -606,7 +606,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
|
||||
List<AllProjectStatistics> listConfirmAmount = payWorkingGroupMapper.queryListConfirmAmount(allProjectStatisticsSearch);
|
||||
List<AllProjectStatistics> listBillMoney = payWorkingGroupMapper.queryListBillMoney(allProjectStatisticsSearch);
|
||||
List<AllProjectStatistics> listComeAllMoney = payWorkingGroupMapper.queryListComeAllMoney(allProjectStatisticsSearch);
|
||||
return getAllProjectMoneyStatistics(allProjectStatisticsSearch,allMoneyList,listConfirmAmount, listBillMoney,listComeAllMoney);
|
||||
// 预计到账金额
|
||||
List<AllProjectStatistics> listEstimatedArrivalMoney = payWorkingGroupMapper.cumulativeListEstimatedArrivalMoney(allProjectStatisticsSearch.getPaymentYear());
|
||||
return getAllProjectMoneyStatistics(allProjectStatisticsSearch,allMoneyList,listConfirmAmount, listBillMoney,listComeAllMoney,listEstimatedArrivalMoney);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -615,7 +617,18 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
|
||||
List<AllProjectStatistics> listConfirmAmount = payWorkingGroupMapper.cumulativeListConfirmAmount(allProjectStatisticsSearch.getPaymentYear());
|
||||
List<AllProjectStatistics> listBillMoney = payWorkingGroupMapper.cumulativeListBillMoney(allProjectStatisticsSearch.getPaymentYear());
|
||||
List<AllProjectStatistics> listComeAllMoney = payWorkingGroupMapper.cumulativeListComeAllMoney(allProjectStatisticsSearch.getPaymentYear());
|
||||
return getAllProjectMoneyStatistics(allProjectStatisticsSearch,allMoneyList,listConfirmAmount, listBillMoney,listComeAllMoney);
|
||||
// 预计到账金额
|
||||
List<AllProjectStatistics> 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);
|
||||
}
|
||||
return getAllProjectMoneyStatistics(allProjectStatisticsSearch,allMoneyList,listConfirmAmount, listBillMoney,listComeAllMoney,listEstimatedArrivalMoney);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -625,7 +638,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
|
||||
List<AllProjectStatistics> listBillMoney = payWorkingGroupMapper.queryListBillMoney(allProjectStatisticsSearch);
|
||||
List<AllProjectStatistics> listComeAllMoney = payWorkingGroupMapper.queryListComeAllMoney(allProjectStatisticsSearch);
|
||||
|
||||
List<AllProjectStatistics> list2=getAllProjectMoneyStatistics(allProjectStatisticsSearch,allMoneyList,listConfirmAmount, listBillMoney,listComeAllMoney);
|
||||
// 预计到账金额
|
||||
List<AllProjectStatistics> listEstimatedArrivalMoney = payWorkingGroupMapper.cumulativeListEstimatedArrivalMoney(allProjectStatisticsSearch.getPaymentYear());
|
||||
List<AllProjectStatistics> list2=getAllProjectMoneyStatistics(allProjectStatisticsSearch,allMoneyList,listConfirmAmount, listBillMoney,listComeAllMoney,listEstimatedArrivalMoney);
|
||||
AllMoney allMoney=payWorkingGroupMapper.queryPageList33(allProjectStatisticsSearch, idList);
|
||||
|
||||
List<String> comeAllMoneyList=list2.stream().map(AllProjectStatistics::getComeAllMoney).collect(Collectors.toList());
|
||||
@@ -677,11 +692,13 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
|
||||
List<AllProjectStatistics> allMoneyList,
|
||||
List<AllProjectStatistics> listConfirmAmount,
|
||||
List<AllProjectStatistics> listBillMoney,
|
||||
List<AllProjectStatistics> listComeAllMoney) {
|
||||
List<AllProjectStatistics> listComeAllMoney,
|
||||
List<AllProjectStatistics> listEstimatedArrivalMoney) {
|
||||
Map<String, String> allMoneyMap = allMoneyList.stream().collect(Collectors.toMap(AllProjectStatistics::getPaymentDate, AllProjectStatistics::getAllMoney));
|
||||
Map<String, String> confirmAmountMap = listConfirmAmount.stream().collect(Collectors.toMap(AllProjectStatistics::getPaymentDate, AllProjectStatistics::getConfirmAmount));
|
||||
Map<String, String> billMoneyMap = listBillMoney.stream().collect(Collectors.toMap(AllProjectStatistics::getPaymentDate, AllProjectStatistics::getBillMoney));
|
||||
Map<String, String> comeAllMoneyMap = listComeAllMoney.stream().collect(Collectors.toMap(AllProjectStatistics::getPaymentDate, AllProjectStatistics::getComeAllMoney));
|
||||
Map<String, String> estimatedArrivalMoneyMap = listEstimatedArrivalMoney.stream().collect(Collectors.toMap(AllProjectStatistics::getPaymentDate, AllProjectStatistics::getEstimatedArrivalMoney));
|
||||
|
||||
String paymentYear=allProjectStatisticsSearch.getPaymentYear();
|
||||
List<String> yearMonth = getYearMonth(paymentYear);
|
||||
@@ -692,6 +709,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
|
||||
allProjectStatistics.setConfirmAmount("0.00");
|
||||
allProjectStatistics.setBillMoney("0.00");
|
||||
allProjectStatistics.setComeAllMoney("0.00");
|
||||
allProjectStatistics.setEstimatedArrivalMoney("0.00");
|
||||
allProjectStatistics.setPaymentDate(date);
|
||||
returnList.add(allProjectStatistics);
|
||||
}
|
||||
@@ -709,6 +727,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
|
||||
if (allMoneyMap.containsKey(paymentDate)) {
|
||||
allProjectStatistics.setAllMoney(allMoneyMap.get(paymentDate));
|
||||
}
|
||||
if (estimatedArrivalMoneyMap.containsKey(paymentDate)) {
|
||||
allProjectStatistics.setEstimatedArrivalMoney(estimatedArrivalMoneyMap.get(paymentDate));
|
||||
}
|
||||
}
|
||||
return returnList;
|
||||
}
|
||||
|
||||
+34
@@ -2,6 +2,7 @@ package com.jero.project.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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;
|
||||
@@ -56,11 +57,13 @@ import com.jero.temporary.service.IPayContactsManagementTemporaryService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.usermodel.DataFormat;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.jeecgframework.poi.excel.ExcelImportCheckUtil;
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
@@ -71,6 +74,9 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.File;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -129,6 +135,8 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
||||
@Resource
|
||||
PayWorkingGroupSubItemContactsMapper payWorkingGroupSubItemContactsMapper;
|
||||
|
||||
private static final String DATE_FORMAT = "yyyy-MM-dd";
|
||||
|
||||
|
||||
@Override
|
||||
public IPage<PayWorkingGroupSubItem> queryPageList(Page<PayWorkingGroupSubItem> page, PayWorkingGroupSubItem payWorkingGroupSubitem,String paymentDate) {
|
||||
@@ -583,6 +591,26 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
||||
msg.append("工作组不存在 !");
|
||||
}
|
||||
if(StringUtils.isBlank(msg)) {
|
||||
|
||||
// 校验预估到账日期
|
||||
list.forEach(
|
||||
p -> {
|
||||
// 填充税率为默认值 6%
|
||||
if (Objects.isNull(p.getTaxRate())) {
|
||||
p.setTaxRate(new BigDecimal("0.06"));
|
||||
}
|
||||
String estimatedArrivalDate = p.getEstimatedArrivalDate();
|
||||
if (Objects.isNull(estimatedArrivalDate)) {
|
||||
msg.append("第").append(list.indexOf(p) + 3).append("行预估到账日期不能为空,请修改。<br/>");
|
||||
}else {
|
||||
try {
|
||||
LocalDate.parse(estimatedArrivalDate,DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
||||
}catch (Exception e) {
|
||||
msg.append("第").append(list.indexOf(p) + 3).append("行预估到账日期格式不正确,请修改。<br/>");
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
// 获取工作组成员
|
||||
LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>();
|
||||
query.eq(PayWorkingGroupSubItem::getWorkingGroupId, workGroupId);
|
||||
@@ -1040,6 +1068,12 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
|
||||
payWorkingGroupSubItemMapper.update(null, updateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PayWorkingGroupSubItem> queryList(QueryWrapper<PayWorkingGroupSubItem> queryPayWorkingGroupSubItem) {
|
||||
|
||||
return payWorkingGroupSubItemMapper.queryList(queryPayWorkingGroupSubItem);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description 删除项目打包关联,临时企业、联系信息
|
||||
* @Author lqt
|
||||
|
||||
+11
@@ -4,10 +4,12 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.DecimalMax;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: pay_working_group_subitem
|
||||
@@ -51,6 +53,14 @@ public class PayWorkingGroupSubItemExcel implements Serializable {
|
||||
@ApiModelProperty(value = "实收金额(元)")
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING)
|
||||
private BigDecimal paidAmount;
|
||||
|
||||
/**预估到账日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "预估到账日期")
|
||||
@Excel(name = "预估到账日期",width = 15)
|
||||
private String estimatedArrivalDate;
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
@@ -63,6 +73,7 @@ public class PayWorkingGroupSubItemExcel implements Serializable {
|
||||
@Excel(name = "收费通知号", width = 15)
|
||||
@ApiModelProperty(value = "收费通知号")
|
||||
private String chargeNoticeNo;
|
||||
|
||||
/**
|
||||
* 打包
|
||||
*/
|
||||
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
package com.jero.statistics.controller;
|
||||
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.meeting.service.IPayMeetingService;
|
||||
import com.jero.meeting.service.IPayMeetingSituationService;
|
||||
import com.jero.payment.service.impl.PayConfirmPaymentRecordService;
|
||||
import com.jero.statistics.entity.MeetingPackStatisticsSearch;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
|
||||
/**
|
||||
* @author zql
|
||||
* @date 2021/9/20 21:00:00
|
||||
*/
|
||||
@Api(tags = "会议打包统计")
|
||||
@RestController
|
||||
@RequestMapping("/statistics/meetingPackStatistics")
|
||||
@Slf4j
|
||||
public class MeetingPackStatisticsController {
|
||||
@Resource
|
||||
private IPayMeetingSituationService payMeetingSituationService;
|
||||
@Resource
|
||||
private IPayMeetingService payMeetingService;
|
||||
@Resource
|
||||
private PayConfirmPaymentRecordService payConfirmPaymentRecordService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @param metingPackStatisticsSearch 会议打包统计
|
||||
* @param pageNo 页数
|
||||
* @param pageSize 条数
|
||||
*/
|
||||
// @RequiresPermissions("individualPaymentStatistics:search")
|
||||
@ApiOperation(value = "会议打包统计-分页列表查询", notes = "会议打包统计-分页列表查询")
|
||||
@GetMapping(value = "/page")
|
||||
public Result<?> list(MeetingPackStatisticsSearch metingPackStatisticsSearch,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return Result.OK(payMeetingSituationService.getMeetingPackStatistics(metingPackStatisticsSearch, pageNo, pageSize));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出
|
||||
*
|
||||
* @param metingPackStatisticsSearch
|
||||
*/
|
||||
@AutoLog(value = "会议打包统计-导出统计")
|
||||
@ApiOperation(value = "会议打包统计-导出统计", notes = "会议打包统计-导出统计")
|
||||
@GetMapping(value = "/excelMeetingPackStatistics")
|
||||
public ModelAndView excelMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch) {
|
||||
return payMeetingSituationService.excelMeetingPackStatistics(metingPackStatisticsSearch);
|
||||
}
|
||||
}
|
||||
+8
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.constant.enums.LoginType;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.mail.commont.constant;
|
||||
@@ -63,12 +64,19 @@ public class PrincipalPeopleStatisticsController {
|
||||
//判断登录角色,显示特定内容,判断依据为登录用户的角色和机构编码
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String roleCode = sysUser.getRoleCode();
|
||||
LoginType loginType = sysUser.getLoginType();
|
||||
List<String> roleCodes = new ArrayList<>(Arrays.asList(roleCode.split(",")));
|
||||
//admin
|
||||
if (roleCodes.contains(constant.ADMIN)|| roleCodes.contains(constant.SLD)) {
|
||||
if (LoginType.EXTERNAL.equals(loginType)){
|
||||
return Result.OK();
|
||||
}
|
||||
idList = null;
|
||||
//部门负责人
|
||||
} else if (roleCodes.contains(constant.BMFZR) ) {
|
||||
if (LoginType.EXTERNAL.equals(loginType)){
|
||||
return Result.OK();
|
||||
}
|
||||
//获取本部门及其所有下部部门所有成员(不包含最开始的部门下级成员)
|
||||
List<String> allDepartIds = sysBaseAPI.getAllUserIdsByDepart(sysUser.getDepartIds(), idList);
|
||||
//获取本部门成员
|
||||
|
||||
+4
@@ -80,6 +80,10 @@ public class AllProjectStatistics {
|
||||
@ApiModelProperty(value = "项目年份")
|
||||
private String year;
|
||||
|
||||
@ApiModelProperty(value = "预计到账金额")
|
||||
private String estimatedArrivalMoney;
|
||||
|
||||
|
||||
|
||||
public AllProjectStatistics(String allMoney, String confirmAmount, String billMoney, String comeAllMoney, String paymentDate) {
|
||||
this.allMoney=allMoney;
|
||||
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
package com.jero.statistics.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @author lqt
|
||||
* @version 1.0
|
||||
* @date 2023/12/27 17:53
|
||||
*/
|
||||
@Data
|
||||
public class MeetingPackStatistics implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "参会人id")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "会议id")
|
||||
private String meetingId;
|
||||
|
||||
@Excel(name = "会议名称", width = 15)
|
||||
@ApiModelProperty(value = "会议名称")
|
||||
private String meetingName;
|
||||
|
||||
@Excel(name = "会议类型", width = 15, dicCode = "meeting_type")
|
||||
@ApiModelProperty(value = "会议类型")
|
||||
private Integer meetingType;
|
||||
|
||||
@Excel(name = "来款单位", width = 15)
|
||||
@ApiModelProperty(value = "来款单位")
|
||||
private String companyName;
|
||||
|
||||
@Excel(name = "参会人员", width = 15)
|
||||
@ApiModelProperty(value = "参会人员")
|
||||
private String companyContactName;
|
||||
|
||||
@Excel(name = "年度待确收金额", width = 15)
|
||||
@ApiModelProperty(value = "应收金额")
|
||||
private String allMoney;
|
||||
|
||||
@Excel(name = "确认收入金额", width = 15)
|
||||
@ApiModelProperty(value = "确认金额")
|
||||
private String confirmAmount;
|
||||
|
||||
@Excel(name = "开票金额", width = 15)
|
||||
@ApiModelProperty(value = "开票金额")
|
||||
private String billMoney;
|
||||
|
||||
@Excel(name = "到账金额", width = 15)
|
||||
@ApiModelProperty(value = "到账金额")
|
||||
private String comeAllMoney;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "确认年份")
|
||||
private BigDecimal paymentYear;
|
||||
|
||||
@ApiModelProperty(value = "会议类型")
|
||||
private String meetingType_dictText;
|
||||
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package com.jero.statistics.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author lqt
|
||||
* @version 1.0
|
||||
* @date 2023/12/27 17:53
|
||||
*/
|
||||
@Data
|
||||
public class MeetingPackStatisticsSearch implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "来款单位")
|
||||
private String companyName;
|
||||
@ApiModelProperty(value = "确认年份")
|
||||
private String paymentYear;
|
||||
@ApiModelProperty(value = "来款方式(默认打包)")
|
||||
private String payMode;
|
||||
|
||||
@ApiModelProperty(value = "字段")
|
||||
private String column;
|
||||
|
||||
@ApiModelProperty(value = "排序规则")
|
||||
private String order;
|
||||
}
|
||||
+1
-1
@@ -84,7 +84,7 @@ public class OSSFileController {
|
||||
*/
|
||||
@ResponseBody
|
||||
@GetMapping("/queryById")
|
||||
public Result<OSSFile> queryById(@RequestParam(name = "id") String id) {
|
||||
public Result<OSSFile> queryById(@RequestParam(name = "id",required = false) String id) {
|
||||
Result<OSSFile> result = new Result<>();
|
||||
OSSFile file = ossFileService.getById(id);
|
||||
if (file == null) {
|
||||
|
||||
@@ -136,15 +136,15 @@ spring:
|
||||
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
|
||||
datasource:
|
||||
master:
|
||||
url: jdbc:p6spy:mysql://10.10.10.44:3306/income_payments_online_test?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
||||
url: jdbc:p6spy:mysql://lijiarao.cn:3306/income_payments_prod?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
|
||||
username: root
|
||||
password: hzwlsoft.com
|
||||
password: 704670af746903fa
|
||||
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
|
||||
# 多数据源配置
|
||||
multi-datasource1:
|
||||
url: jdbc:p6spy:mysql://10.10.10.44:3306/standards_association?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&serverTimezone=Asia/Shanghai
|
||||
url: jdbc:p6spy:mysql://lijiarao.cn:3306/standards_association?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&serverTimezone=Asia/Shanghai
|
||||
username: root
|
||||
password: hzwlsoft.com
|
||||
password: 704670af746903fa
|
||||
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
|
||||
redis:
|
||||
database: 14
|
||||
|
||||
Reference in New Issue
Block a user