diff --git a/db/24年6月变更.sql b/db/24年6月变更.sql
index ce4c8ad8..a9a5c297 100644
--- a/db/24年6月变更.sql
+++ b/db/24年6月变更.sql
@@ -104,3 +104,125 @@ INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `com
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 ('1800701388810936321', '1430376424950026242', '委员信息', '/organizationalManage/committeeMemberInfo', 'organizationalManage/committeeMemberInfo/CommitteeMemberInfoList', NULL, NULL, 1, NULL, '1', 24.00, 0, NULL, 1, 0, 0, 1, NULL, 'LKGLZ', '2024-06-12 09:27:21', 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 ('1800701184820961281', '1430376424950026242', '委员会详情', '/organizationalManage/committeeDetail', 'organizationalManage/committeeInfo/CommitteeInfoDetail', NULL, NULL, 1, NULL, '1', 23.00, 0, NULL, 1, 1, 0, 1, NULL, 'LKGLZ', '2024-06-12 09:26:33', 'LKGLZ', '2024-06-12 09:26:44', 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 ('1800698635388772353', '', '委员会', '/organizationalManage/committeeInfo', 'organizationalManage/committeeInfo/CommitteeInfoList', NULL, NULL, 0, NULL, '1', 4.10, 0, 'cus_yinzhang', 1, 0, 0, 0, NULL, 'LKGLZ', '2024-06-12 09:16:25', 'LKGLZ', '2024-06-12 09:16:36', 0, 0, '1', 0, 1);
+
+-- 20240701 财务管理-修改待确收金额
+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 ('1806586851988770818', '1435815710331621378', '修改待确收金额', NULL, NULL, NULL, NULL, 2, 'incomePaymentAndInvoiving:editReceivableAmount', '0', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-06-28 15:14:05', NULL, NULL, 0, 0, '1', 0, 1);
+-- 20240701 普通项目-新增复制
+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 ('1807697397756596226', '1430376521213497345', '复制', '', NULL, NULL, NULL, 2, 'generalProject:copy', '1', 4.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-01 16:47:00', NULL, NULL, 0, 0, '1', 0, 1);
+-- 20240701 会员信息统计
+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 ('1807709111403286529', '1807708679419334658', '导出', NULL, NULL, NULL, NULL, 2, 'memberStatistic:export', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-01 17:33:32', 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 ('1807709030168006657', '1807708679419334658', '查询', NULL, NULL, NULL, NULL, 2, 'memberStatistic:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-01 17:33:13', 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 ('1807708679419334658', '1438394322899558402', '会员信息统计', '/incomePayments/memberManage/MemberStatisticList', 'incomePayments/memberManage/MemberStatisticList', NULL, NULL, 1, NULL, '1', 8.11, 0, NULL, 1, 0, 0, 0, NULL, 'LKGLZ', '2024-07-01 17:31:49', NULL, NULL, 0, 0, '1', 0, 1);
+-- 20240703 工作组-成员单位维护-确认凭证 工作组-全部文件导出
+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 ('1808440661174550530', '1431167539278086146', '确认凭证', NULL, NULL, NULL, NULL, 2, 'workingGroupMember:confirmVoucher', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-03 18:00:27', 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 ('1808439808279609346', '1430718058514440194', '全部文件导出', NULL, NULL, NULL, NULL, 2, 'workingGroupProject:exportAllFile', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-03 17:57:04', NULL, NULL, 0, 0, '1', 0, 1);
+-- 20240703 工作组、起草组-会议参会情况-批量审核报名信息
+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 ('1808458564737335298', '1742070808427126785', '批量审核报名信息', '', NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:batchAuditSignUp', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-03 19:11:36', 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 ('1808458432167968769', '1443462660843458561', '批量审核报名信息', NULL, NULL, NULL, NULL, 2, 'workGroupMeetingSituation:batchAuditSignUp', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-03 19:11:04', NULL, NULL, 0, 0, '1', 0, 1);
+-- 20240704 会议参会情况-编辑打包前金额
+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 ('1808714130038607873', '1443470901166039042', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'standardsMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 12:07:08', 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 ('1808713535055613954', '1443461591480487938', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'committeeMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 12:04:46', 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 ('1808712529420898306', '1744610339198091266', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 12:00:46', 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 ('1808712332892590081', '1470954992463327234', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'councilMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 11:59:59', 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 ('1808712185471193089', '1803335479314161665', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'overseasMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 11:59:24', 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 ('1808711899306414081', '1443460205023940610', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'otherMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 11:58:16', 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 ('1808711775985487874', '1433322232030777345', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'internalMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 11:57:46', 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 ('1808711651183972353', '1443462660843458561', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'workGroupMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 11:57:17', NULL, NULL, 0, 0, '1', 0, 1);
+
+-- 20240704 会议酒店推荐 相关菜单
+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 ('1808762081121292290', '1808757213186904065', '下载模板', NULL, NULL, NULL, NULL, 2, 'recommendHotelPage:downTemplate', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 15:17:40', 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 ('1808761976095920129', '1808757213186904065', '导入', NULL, NULL, NULL, NULL, 2, 'recommendHotelPage:import', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 15:17:15', 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 ('1808761869799673858', '1808757213186904065', '查询', NULL, NULL, NULL, NULL, 2, 'recommendHotelPage:list', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 15:16:50', 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 ('1808757213186904065', '1430376424950026242', '会议酒店推荐', '/projectManagement/allMeetingList/RecommendHotelPage', 'projectManagement/RecommendHotelPage', NULL, NULL, 1, NULL, '1', 40.00, 0, NULL, 1, 0, 0, 1, NULL, 'LKGLZ', '2024-07-04 14:58:19', 'LKGLZ', '2024-07-04 14:58:31', 0, 0, '1', 0, 1);
+-- 20240704 年度数据锁定
+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 ('1808786188755947522', '1808784364816715778', '批量删除', NULL, NULL, NULL, NULL, 2, 'annualDataLockingList:batchDel', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 16:53:28', 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 ('1808786109202583554', '1808784364816715778', '删除', NULL, NULL, NULL, NULL, 2, 'annualDataLockingList:delete', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 16:53:09', 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 ('1808785934673399809', '1808784364816715778', '新增', NULL, NULL, NULL, NULL, 2, 'annualDataLockingList:add', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 16:52:27', 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 ('1808785856063754242', '1808784364816715778', '查询', NULL, NULL, NULL, NULL, 2, 'annualDataLockingList:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 16:52:08', 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 ('1808784364816715778', 'd7d6e2e4e2934f2c9385a623fd98c6f3', '年度数据锁定', '/isystem/annualDataLockingList', 'system/AnnualDataLockingList', NULL, NULL, 1, NULL, '1', 9.00, 0, NULL, 1, 0, 0, 0, NULL, 'LKGLZ', '2024-07-04 16:46:13', NULL, NULL, 0, 0, '1', 0, 1);
+-- 20240704 企业分类统计菜单
+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 ('1808798008250093569', '1808797556947177473', '导出', NULL, NULL, NULL, NULL, 2, 'companyPaymentClassificationStatistics:export', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 17:40:26', 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 ('1808797925806854146', '1808797556947177473', '查询', NULL, NULL, NULL, NULL, 2, 'companyPaymentClassificationStatistics:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 17:40:06', 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 ('1808797556947177473', '1437320526513905666', '企业来款分类统计', '/statisticalReport/enterprisePaymentStatistics/enterprisePaymentClassificationStatisticsList', 'statisticalReport/enterprisePaymentStatistics/EnterprisePaymentClassificationStatisticsList', NULL, NULL, 1, NULL, '1', 2.10, 0, NULL, 1, 0, 1, 0, NULL, 'LKGLZ', '2024-07-04 17:38:38', NULL, NULL, 0, 0, '1', 0, 0);
+
+-- 20240705 标协会员的视图创建
+CREATE VIEW v_member_project_subitem AS
+select `t1`.`id` AS `id`,`t1`.`member_no` AS `member_no`,`t1`.`company_name` AS `company_name`,`t1`.`liaison_man_id` AS `liaison_man_id`,
+ `t1`.`member_status` AS `member_status`,`t1`.`effective_date` AS `effective_date`,`t1`.`invalidation_date` AS `invalidation_date`,
+ `t1`.`create_time` AS `create_time`,`t1`.`project_id` AS `project_id` from (`tb_member_project_subitem` `t1` join
+ (select `tb_member_project_subitem`.`company_id` AS `company_id`,max(`tb_member_project_subitem`.`create_time`) AS `max_create_time`
+ from `tb_member_project_subitem` group by `tb_member_project_subitem`.`company_id`) `t2` on(((`t1`.`company_id` = `t2`.`company_id`)
+ and (`t1`.`create_time` = `t2`.`max_create_time`)))) where (`t1`.`member_status` is not null);
+
+-- 20240708 工作组成员新增是否审核,是否确认凭证字段
+ALTER TABLE `pay_working_group_subitem`
+ add column check_payment_status tinyint(1) comment '是否审核(1:是,0:否)',
+ add column confirm_voucher tinyint(1) comment '是否确认凭证(1:是,0:否)';
+
+-- 20240708 工作组表新增自定义排序字段
+ALTER TABLE `pay_working_group`
+ add column sort_no decimal(20, 10) comment '自定义排序顺序';
+
+-- 20240710 新增会议酒店推荐表
+DROP TABLE IF EXISTS `pay_meeting_hotel_recommend`;
+CREATE TABLE `pay_meeting_hotel_recommend` (
+ `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
+ `recommend_people` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '推荐人',
+ `hotel_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '酒店名称',
+ `hotel_province` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所在省份',
+ `hotel_city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所在城市',
+ `is_hold` tinyint(1) NULL DEFAULT NULL COMMENT '是否举办过标准院会议 1-是 0-否',
+ `meeting_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '曾举办的会议类型',
+ `contact` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '酒店联系方式',
+ `remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ `create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
+ `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+ `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
+ `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会议酒店推荐表' ROW_FORMAT = DYNAMIC;
+
+SET FOREIGN_KEY_CHECKS = 1;
+
+
+-- 20240712 导入到标协会员菜单
+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 ('1811666066341814274', '1469221945005338626', '导入到标协会员', NULL, NULL, NULL, NULL, 2, 'council:exportToMember', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-12 15:37:04', NULL, NULL, 0, 0, '1', 0, 1);
+
+-- 20240715 会议汇总-会议酒店推荐按钮
+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 ('1812785413516914690', '1626061755230580738', '会议酒店推荐', NULL, NULL, NULL, NULL, 2, 'allmeeting:recommendHotel', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-15 17:44:57', NULL, NULL, 0, 0, '1', 0, 1);
+
+-- 20240716 处理工作组成员历史数据中的是否确认凭证字段
+UPDATE pay_working_group_subitem SET confirm_voucher = 0 WHERE confirm_voucher IS NULL;
+
+-- 20240716 处理工作组成员历史数据中的是否审核字段
+UPDATE pay_working_group_subitem SET check_payment_status = 0;
+UPDATE pay_working_group_subitem SET check_payment_status = 1 WHERE payment_status = 'completed' OR payment_status = 'rejected';
+
+-- auto-generated definition
+create table pay_annual_data_locking
+(
+ id varchar(32) not null comment '主键'
+ primary key,
+ year varchar(32) null comment '年份',
+ create_by varchar(32) null comment '创建人',
+ create_time datetime null comment '创建时间',
+ update_by varchar(32) null comment '更新人',
+ update_time datetime null comment '更新时间'
+)
+ comment '年度数据锁定表';
+
+alter table pay_company_management_temporary comment '企业管理临时表';
+alter table pay_contacts_management_temporary comment '联系人管理临时表';
+
+alter table pay_company_management_temporary
+ add year varchar(4) null comment '数据锁定年份';
+alter table pay_contacts_management_temporary
+ add year varchar(4) null comment '数据锁定年份';
+# 标协会员项目增加临时id
+alter table tb_member_project_subitem
+ add company_temporary_id varchar(50) null comment '企业临时id' after company_id,
+ add company_contact_temporary_id varchar(50) null comment '企业联系人临时id' after liaison_man_id,
+ add post_contact_temporary_id varchar(150) null comment '邮寄联系人临时id' after post_contact_id;
+# 标协会员项目增加临时id
+alter table pay_pack_company
+ add mail_contact_temporary_id varchar(150) null comment '邮寄联系人临时id' after mail_contacts_id;
\ No newline at end of file
diff --git a/db/统计视图(新).sql b/db/统计视图(新).sql
index 0c3893a0..dd6a619e 100644
--- a/db/统计视图(新).sql
+++ b/db/统计视图(新).sql
@@ -203,7 +203,7 @@ from (SELECT pwgs.id,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
- null as estimatedArrivalDate,
+ estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
@@ -460,7 +460,7 @@ from (SELECT pwgs.id,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
- null as estimatedArrivalDate,
+ estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
@@ -826,6 +826,7 @@ SELECT
end meeting_costs_b,
p2.meeting_name,
p2.meeting_type,
+ p2.particular_year as year,
( SELECT DATE_FORMAT( payment_date, '%Y' ) FROM pay_confirm_payment_record p3 WHERE p3.project_id = p1.id LIMIT 1 ) AS payment_year
FROM
pay_meeting_situation p1
@@ -1073,7 +1074,7 @@ from (SELECT pwgs.id,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
- null as estimatedArrivalDate,
+ estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
@@ -1373,7 +1374,7 @@ from (SELECT pwgs.id,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
- null as estimatedArrivalDate,
+ estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
@@ -1567,6 +1568,40 @@ from (
and (pack = 0 or year < 2024)
group by pwgs.id
union all
+ SELECT pcp.id,
+ pcp.id as superId,
+ pcp.charge_project AS projectName,
+ pcp.principal_name as principalName,
+ pcp.charge_company_id AS chargeCompanyId,
+ pcp.charge_company_temporary_id as chargeCompanyTemporaryId,
+ pcp.charge_company_temporary_name AS chargeCompanyTemporaryName,
+ pcp.no_tax_amount as allMoney,
+ pcp.paid_amount as comeAllMoney,
+ 16 as chargeUse,
+ sd.depart_name as depart,
+ pcp.pack as pack,
+ pcp.year as year,
+ pcp.in_account as payStatue,
+ sd.org_code as departCode,
+ sd.id as departId,
+ pcp.principal_id as principalNameId,
+ 1 as type,
+ pcp.invoice_amount AS billMoney,
+ confirm_amount as confirmAmount,
+ invoice_no_tax_amount as invoiceNoTaxAmount,
+ paid_no_tax_amount as paidNoTaxAmount,
+ confirm_no_tax_amount as confirmNoTaxAmount,
+ contacts_temporary_name as contactsName,
+ GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
+ pcp.create_time as createTime
+ FROM pay_common_project pcp
+ left JOIN sys_user su on (pcp.principal_id = su.id)
+ left join sys_depart sd on (su.depart_ids = sd.id)
+ left join pay_confirm_payment_record pcpr on pcp.id = pcpr.project_id
+ where (pack = 0 or year < 2024)
+ and charge_way = 2
+ group by pcp.id
+ union all
SELECT pcp.id,
pcp.id as superId,
pcp.charge_project AS projectName,
@@ -1598,6 +1633,7 @@ from (
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on pcp.id = pcpr.project_id
where (pack = 0 or year < 2024)
+ and charge_way != 2
group by pcp.id
union all
SELECT pmps.id,
diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/CommonConstant.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/CommonConstant.java
index a5879845..9770c289 100644
--- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/CommonConstant.java
+++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/CommonConstant.java
@@ -309,4 +309,6 @@ public interface CommonConstant {
* 第三方登录 验证密码/创建用户 都需要设置一个操作码 防止被恶意调用
*/
public final static String THIRD_LOGIN_CODE = "third_login_code";
+
+ public final static String ZERO = "0.00";
}
diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/StaticConfig.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/StaticConfig.java
index 605af32e..4870dab1 100644
--- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/StaticConfig.java
+++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/StaticConfig.java
@@ -46,6 +46,13 @@ public class StaticConfig {
StaticConfig.needPassword = needPassword;
}
+ public static String TEMPLATE_PATH;
+
+ @Value("${template.path.templatePath}")
+ public void setTemplatePath(String templatePath) {
+ StaticConfig.TEMPLATE_PATH = templatePath;
+ }
+
/*@Bean
public void initStatic() {
diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java
index 74b96cd1..742db8ad 100644
--- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java
+++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java
@@ -140,7 +140,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/sys/oss/file/queryById","anon");//通过id查询文件
filterChainDefinitionMap.put("/meeting/internalMeetingSituation/checkMember","anon");//校验是否为会员单位
filterChainDefinitionMap.put("/meeting/internalMeeting/getLinkTopics","anon");//查询关联会议
- filterChainDefinitionMap.put("/company/payCompanyManagement/judgeCompanyIsPackaged","anon");//判断当前企业是否是打包企业
+ filterChainDefinitionMap.put("/pack/payPackCompany/judgeCompanyIsPackaged","anon");//判断当前企业是否是打包企业
//通过单位名称查询该单位是否可用
filterChainDefinitionMap.put("/member/tbMemberProjectSubitem/enableMemberByCompanyName", "anon");
//门户端-分页查询所有会员名称
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/ProjectDetailMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/ProjectDetailMapper.java
index 24a8f721..2fc9c567 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/ProjectDetailMapper.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/ProjectDetailMapper.java
@@ -1,18 +1,19 @@
package com.jero.common.mapper;
import com.jero.project.entity.PayCommonProject;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ProjectDetailMapper {
/**
- * @Description 查询项目信息
- * @Author lqt
- * @Date 2021/9/14
- * @Param projectId 项目id
- * @Return
- * @Exception
- */
- PayCommonProject queryProject(String projectId);
+ * @Description 查询项目信息
+ * @Author lqt
+ * @Date 2021/9/14
+ * @Param projectId 项目id
+ * @Return
+ * @Exception
+ */
+ PayCommonProject queryProject(@Param("projectId") String projectId);
/**
* @Description 查询项目列表信息
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml
index 67261834..e8c81344 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml
@@ -4,8 +4,41 @@
+
+
\ No newline at end of file
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/company/service/IPayCompanyManagementService.java b/jero-boot-incoming-payment/src/main/java/com/jero/company/service/IPayCompanyManagementService.java
index 2cb6d3bb..eb6c1425 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/company/service/IPayCompanyManagementService.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/company/service/IPayCompanyManagementService.java
@@ -127,4 +127,7 @@ public interface IPayCompanyManagementService extends IService pageSafetyCenter(Page page, QueryWrapper queryWrapper);
+ Page pageHaveMoney(Page page, List chargeCompanyIds);
+
+ List pageHaveMoney(List chargeCompanyIds);
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/company/service/impl/PayCompanyManagementServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/company/service/impl/PayCompanyManagementServiceImpl.java
index e4ba21a2..5d64fd0f 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/company/service/impl/PayCompanyManagementServiceImpl.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/company/service/impl/PayCompanyManagementServiceImpl.java
@@ -32,14 +32,22 @@ import com.jero.company.vo.CompanyOrContactsCount;
import com.jero.company.vo.UpdateInvoicePram;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.service.IPayIncomeContractService;
+import com.jero.meeting.entity.PayMeetingSituation;
+import com.jero.meeting.mapper.PayMeetingSituationMapper;
+import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.member.entity.PayMemberProjectSubitem;
+import com.jero.member.entity.TbMemberProjectSubitem;
+import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.service.IPayMemberProjectSubitemService;
+import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompany;
+import com.jero.pack.mapper.PayPackCompanyMapper;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroupSubItem;
+import com.jero.project.service.AnnualDataLockingService;
import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
@@ -93,7 +101,21 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl pageHaveMoney(Page page, List chargeCompanyIds) {
+ return payCompanyManagementMapper.pageHaveMoney(page, chargeCompanyIds);
+ }
+
+ @Override
+ public List pageHaveMoney(List chargeCompanyIds) {
+ return payCompanyManagementMapper.pageHaveMoney(chargeCompanyIds);
+ }
+
/**
* 校验企业名称和信用代码是否匹配
* @param payCompanyManagement
@@ -749,113 +764,99 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl updatePayContactsManagement = new LambdaUpdateWrapper<>();
- updatePayContactsManagement.eq(PayContactsManagement::getCompanyId,payCompanyManagement.getId());
+ updatePayContactsManagement.eq(PayContactsManagement::getCompanyId, companyManagementId);
updatePayContactsManagement.set(PayContactsManagement::getCompanyName,payCompanyManagement.getCompanyName());
payContactsManagementService.update(updatePayContactsManagement);
- int thisYear = DateUtil.thisYear();
+ List allYear = annualDataLockingService.getAllYear();
//需要更新的临时企业id
List companyTemporaryIdList = new ArrayList<>();
// 更新普通项目
LambdaQueryWrapper quaryPayCommonProject = new LambdaQueryWrapper<>();
- quaryPayCommonProject.eq(PayCommonProject::getChargeCompanyId,payCompanyManagement.getId());
+ quaryPayCommonProject.eq(PayCommonProject::getChargeCompanyId, companyManagementId);
+
+ quaryPayCommonProject.notIn(PayCommonProject::getYear,allYear);
- quaryPayCommonProject.eq(PayCommonProject::getYear,thisYear);
- quaryPayCommonProject.and(
- a -> {
- a.eq(PayCommonProject::getPaidAmount, BigDecimal.ZERO)
- .or()
- .isNull(PayCommonProject::getPaidAmount);
- });
- quaryPayCommonProject.and(
- a -> {
- a.eq(PayCommonProject::getInvoiceAmount, BigDecimal.ZERO)
- .or()
- .isNull(PayCommonProject::getInvoiceAmount);
- });
- quaryPayCommonProject.and(
- a -> {
- a.eq(PayCommonProject::getConfirmAmount, BigDecimal.ZERO)
- .or()
- .isNull(PayCommonProject::getConfirmAmount);
- });
List list = payCommonProjectService.list(quaryPayCommonProject);
List collect = list.stream().map(PayCommonProject::getChargeCompanyTemporaryId).collect(Collectors.toList());
+ List idList = list.stream().map(PayCommonProject::getId).collect(Collectors.toList());
companyTemporaryIdList.addAll(collect);
- if (!collect.isEmpty()){
+ if (!idList.isEmpty()){
LambdaUpdateWrapper updatePayCommonProject = new LambdaUpdateWrapper<>();
- updatePayCommonProject.in(PayCommonProject::getChargeCompanyTemporaryId,collect);
+ updatePayCommonProject.in(PayCommonProject::getId,idList);
updatePayCommonProject.set(PayCommonProject::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName());
payCommonProjectService.update(updatePayCommonProject);
}
// 更新工作组
QueryWrapper queryPayWorkingGroupSubItem = new QueryWrapper<>();
- queryPayWorkingGroupSubItem.eq("pwg.year",thisYear);
- queryPayWorkingGroupSubItem.lambda().eq(PayWorkingGroupSubItem::getChargeCompanyId,payCompanyManagement.getId())
- .and(
- a -> {
- a.eq(PayWorkingGroupSubItem::getPaidAmount, BigDecimal.ZERO)
- .or()
- .isNull(PayWorkingGroupSubItem::getPaidAmount);
- })
- .and(
- a -> {
- a.eq(PayWorkingGroupSubItem::getInvoiceAmount, BigDecimal.ZERO)
- .or()
- .isNull(PayWorkingGroupSubItem::getInvoiceAmount);
- })
- .and(
- a -> {
- a.eq(PayWorkingGroupSubItem::getConfirmAmount, BigDecimal.ZERO)
- .or()
- .isNull(PayWorkingGroupSubItem::getConfirmAmount);
- });
+ queryPayWorkingGroupSubItem.notIn("pwg.year",allYear);
+ queryPayWorkingGroupSubItem.lambda().eq(PayWorkingGroupSubItem::getChargeCompanyId, companyManagementId);
+
List workingGroupSubItemList = payWorkingGroupSubItemService.queryList(queryPayWorkingGroupSubItem);
List collect1 = workingGroupSubItemList.stream().map(PayWorkingGroupSubItem::getChargeCompanyTemporaryId).collect(Collectors.toList());
+ List idList1 = workingGroupSubItemList.stream().map(PayWorkingGroupSubItem::getId).collect(Collectors.toList());
companyTemporaryIdList.addAll(collect1);
- if (!collect1.isEmpty()){
+ if (!idList1.isEmpty()){
LambdaUpdateWrapper updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
- updatePayWorkingGroupSubItem.in(PayWorkingGroupSubItem::getChargeCompanyId,collect1);
+ updatePayWorkingGroupSubItem.in(PayWorkingGroupSubItem::getId,idList1);
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName());
payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem);
}
-
+ //会议项目
+ List meetingSituations = meetingSituationMapper.listByYearNotIn(allYear,companyManagementId);
+ List collect4 = meetingSituations.stream().map(PayMeetingSituation::getCompanyTemporaryId).collect(Collectors.toList());
+ List idList4 = meetingSituations.stream().map(PayMeetingSituation::getId).collect(Collectors.toList());
+ companyTemporaryIdList.addAll(collect4);
+ if (!idList4.isEmpty()){
+ LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.in(PayMeetingSituation::getId,idList4);
+ updateWrapper.set(PayMeetingSituation::getCompanyName,payCompanyManagement.getCompanyName());
+ meetingSituationService.update(updateWrapper);
+ }
// 更新会员
QueryWrapper queryPayMemberProjectSubitem = new QueryWrapper<>();
- queryPayMemberProjectSubitem.eq("pmp.particular_year",thisYear);
- queryPayMemberProjectSubitem.lambda().eq(PayMemberProjectSubitem::getCompanyId,payCompanyManagement.getId())
- .and(
- a -> {
- a.eq(PayMemberProjectSubitem::getPaidAmount, BigDecimal.ZERO)
- .or()
- .isNull(PayMemberProjectSubitem::getPaidAmount);
- })
- .and(
- a -> {
- a.eq(PayMemberProjectSubitem::getInvoiceAmount, BigDecimal.ZERO)
- .or()
- .isNull(PayMemberProjectSubitem::getInvoiceAmount);
- })
- .and(
- a -> {
- a.eq(PayMemberProjectSubitem::getConfirmAmount, BigDecimal.ZERO)
- .or()
- .isNull(PayMemberProjectSubitem::getConfirmAmount);
- });
+ queryPayMemberProjectSubitem.notIn("pmp.particular_year",allYear) ;
+ queryPayMemberProjectSubitem.lambda().eq(PayMemberProjectSubitem::getCompanyId, companyManagementId);
+
List payMemberProjectSubitems = memberProjectSubitemService.queryPageListCompany(queryPayMemberProjectSubitem);
List collect2 = payMemberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyTemporaryId).collect(Collectors.toList());
+ List idList2 = payMemberProjectSubitems.stream().map(PayMemberProjectSubitem::getId).collect(Collectors.toList());
companyTemporaryIdList.addAll(collect2);
- if (!collect2.isEmpty()){
+ if (!idList2.isEmpty()){
LambdaUpdateWrapper updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>();
- updatePayMemberProjectSubitem.in(PayMemberProjectSubitem::getCompanyId,payCompanyManagement.getId());
+ updatePayMemberProjectSubitem.in(PayMemberProjectSubitem::getId,idList2);
updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getCompanyName,payCompanyManagement.getCompanyName());
memberProjectSubitemService.update(updatePayMemberProjectSubitem);
}
+ // 更新标协会员
+ QueryWrapper queryTbMemberProjectSubitem = new QueryWrapper<>();
+ queryTbMemberProjectSubitem.notIn("tmp.year",allYear);
+ queryTbMemberProjectSubitem.lambda().eq(TbMemberProjectSubitem::getCompanyId, companyManagementId);
-
+ List tbMemberProjectSubitems = tbMemberProjectSubitemMapper.queryListCompanyYear(queryTbMemberProjectSubitem);
+ List collect3 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getCompanyTemporaryId).collect(Collectors.toList());
+ List idList3 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getId).collect(Collectors.toList());
+ companyTemporaryIdList.addAll(collect3);
+ if (!idList3.isEmpty()){
+ LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.in(TbMemberProjectSubitem::getId,idList3);
+ updateWrapper.set(TbMemberProjectSubitem::getCompanyName,payCompanyManagement.getCompanyName());
+ tbMemberProjectSubitemService.update(updateWrapper);
+ }
+ //打包项目
+ List packCompanyList = packCompanyMapper.listByYearNotIn(allYear,companyManagementId);
+ List collect5 = packCompanyList.stream().map(PayPackCompany::getCompanyTemporaryId).collect(Collectors.toList());
+ List idList6 = packCompanyList.stream().map(PayPackCompany::getId).collect(Collectors.toList());
+ companyTemporaryIdList.addAll(collect5);
+ if (!idList6.isEmpty()){
+ LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.in(PayPackCompany::getId,idList6);
+ updateWrapper.set(PayPackCompany::getCompanyTemporaryName,payCompanyManagement.getCompanyName());
+ packCompanyService.update(updateWrapper);
+ }
// 更新临时数据
if (!companyTemporaryIdList.isEmpty()) {
LambdaUpdateWrapper updatePayCompanyManagementTemporary = new LambdaUpdateWrapper<>();
@@ -878,19 +879,11 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl updatePayIncomeContract = new LambdaUpdateWrapper<>();
- updatePayIncomeContract.eq(PayIncomeContract::getSignedCompanyId,payCompanyManagement.getId());
+ updatePayIncomeContract.eq(PayIncomeContract::getSignedCompanyId, companyManagementId);
//updatePayIncomeContract.ge(PayIncomeContract::getCreateTime,payCompanyManagement.getEditTime());
updatePayIncomeContract.exists(" select 1 from pay_company_management_temporary where " +
"pay_income_contract.signed_company_temporary_id = id and create_time >= '" + DateTime.of(payCompanyManagement.getEditTime()) + "'");
updatePayIncomeContract.set(PayIncomeContract::getSignedCompanyTemporaryName,payCompanyManagement.getCompanyName());
payIncomeContractService.update(updatePayIncomeContract);
- // 更新打包
- LambdaUpdateWrapper updatePayPackCompany = new LambdaUpdateWrapper<>();
- updatePayPackCompany.eq(PayPackCompany::getCompanyId,payCompanyManagement.getId());
- //updatePayPackCompany.ge(PayPackCompany::getCreateTime,payCompanyManagement.getEditTime());
- updatePayPackCompany.exists(" select 1 from pay_company_management_temporary where " +
- "pay_pack_company.company_temporary_id = id and create_time >= '" + DateTime.of(payCompanyManagement.getEditTime()) + "'");
- updatePayPackCompany.set(PayPackCompany::getCompanyTemporaryName,payCompanyManagement.getCompanyName());
- payPackCompanyService.update(updatePayPackCompany);
}
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java
index 089359ea..4ce2e099 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PayIncomeContractServiceImpl.java
@@ -50,7 +50,6 @@ import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper;
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;
@@ -321,7 +320,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl importToMemberProjectSubitem(@RequestBody JSONObject jsonObject) {
+ payCaseCouncilSubitemService.importToMemberProjectSubitem(jsonObject);
+ return Result.OK("导入成功!");
+ }
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/data/service/IPayCaseCouncilSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/data/service/IPayCaseCouncilSubitemService.java
index 88b1e5c3..7525e141 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/data/service/IPayCaseCouncilSubitemService.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/data/service/IPayCaseCouncilSubitemService.java
@@ -1,11 +1,11 @@
package com.jero.data.service;
+import com.alibaba.fastjson.JSONObject;
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.jero.data.entity.*;
import com.baomidou.mybatisplus.extension.service.IService;
-
import java.util.ArrayList;
import java.util.List;
@@ -27,4 +27,5 @@ public interface IPayCaseCouncilSubitemService extends IService listTwo(QueryWrapper queryWrapper, String meetingId);
+ void importToMemberProjectSubitem(JSONObject jsonObject);
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/data/service/impl/PayCaseCouncilSubitemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/data/service/impl/PayCaseCouncilSubitemServiceImpl.java
index 0fca1f9c..943e27ca 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/data/service/impl/PayCaseCouncilSubitemServiceImpl.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/data/service/impl/PayCaseCouncilSubitemServiceImpl.java
@@ -1,18 +1,38 @@
package com.jero.data.service.impl;
+import cn.hutool.core.date.DateUtil;
+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.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jero.common.common.ProjectCommon;
+import com.jero.common.enums.PaymentStatusEnum;
+import com.jero.common.exception.JeroBootException;
+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.config.StaticConfig;
import com.jero.data.entity.*;
import com.jero.data.mapper.PayCaseCouncilSubitemMapper;
import com.jero.data.service.IPayCaseCouncilSubitemService;
+import com.jero.member.entity.TbMemberProject;
+import com.jero.member.entity.TbMemberProjectSubitem;
+import com.jero.member.enums.MemberStatusEnum;
+import com.jero.member.service.ITbMemberProjectService;
+import com.jero.member.service.ITbMemberProjectSubitemService;
+import com.jero.project.common.PayProjectCommon;
import org.springframework.stereotype.Service;
-
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
/**
* @Description: pay_case_council_subitem
@@ -25,6 +45,17 @@ public class PayCaseCouncilSubitemServiceImpl extends ServiceImpl listThree(Page page, String contactsNames, String companyNames, String councilNames, String userId) {
return payCaseCouncilSubitemMapper.listThree(page,contactsNames,companyNames,councilNames,userId);
@@ -50,5 +81,104 @@ public class PayCaseCouncilSubitemServiceImpl extends ServiceImpl lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+ lambdaUpdateWrapper.eq(PayCaseCouncilSubitem::getCouncilId,councilId);
+ List councilSubitemList = payCaseCouncilSubitemService.list(lambdaUpdateWrapper);
+ if (councilSubitemList.isEmpty()) {
+ throw new JeroBootException("该理事会下无成员");
+ }
+ // 根据标协会员项目id查询对应的标协会员项目
+ TbMemberProject tbMemberProject = tbMemberProjectService.getById(projectId);
+ if (Objects.isNull(tbMemberProject)) {
+ throw new JeroBootException("该标协会员项目不存在");
+ }
+ List tbMemberProjectSubitems = new ArrayList<>();
+ BigDecimal councilChargeStandard = tbMemberProject.getChargeStandard();
+ String councilChargeNoticeNo = tbMemberProject.getChargeNoticeNo();
+ String chargeNoticeFileId = tbMemberProject.getChargeNoticeFileId();
+ // 将所有企业成员添加到标协会成员表中
+ for (PayCaseCouncilSubitem payCaseCouncilSubitem : councilSubitemList) {
+ String companyId = payCaseCouncilSubitem.getCompanyId();
+ PayCompanyManagement companyManagement = companyManagementService.getById(companyId);
+ if (companyManagement == null){
+ throw new JeroBootException(payCaseCouncilSubitem.getCompanyName() + "单位不存在");
+ }
+ String liaisonManId = payCaseCouncilSubitem.getContactsId();
+ PayContactsManagement liaisonMan = payContactsManagementService.checkByCompanyIdAndId(liaisonManId, companyId);
+ if (liaisonMan == null){
+ throw new JeroBootException(payCaseCouncilSubitem.getContactsName() + "企业联系人不存在");
+ }
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(TbMemberProjectSubitem::getProjectId, projectId);
+ wrapper.eq(TbMemberProjectSubitem::getCompanyId, companyId);
+ int count = memberProjectSubitemService.count(wrapper);
+ if (count > 0) {
+ throw new JeroBootException(payCaseCouncilSubitem.getCompanyName() + "会员单位已经存在");
+ }
+ TbMemberProjectSubitem tbMemberProjectSubitem = new TbMemberProjectSubitem();
+ tbMemberProjectSubitem.setProjectId(projectId);
+ tbMemberProjectSubitem.setCompanyId(companyId);
+ tbMemberProjectSubitem.setCompanyName(payCaseCouncilSubitem.getCompanyName());
+ tbMemberProjectSubitem.setLiaisonManId(liaisonManId);
+ tbMemberProjectSubitem.setPostContactId(liaisonManId);
+ tbMemberProjectSubitem.setEstimatedArrivalDate(DateUtil.date());
+ tbMemberProjectSubitem.setMemberNature(ProjectCommon.MEMBER_NATURE2);
+ tbMemberProjectSubitem.setPaymentMethod(PayProjectCommon.CHARGE_WAY3);
+ tbMemberProjectSubitem.setInvoiceRequirements(ProjectCommon.NEED_INVOICE2);
+ if (!Objects.isNull(councilChargeStandard)) {
+ tbMemberProjectSubitem.setAmountReceivable(councilChargeStandard);
+ }else {
+ tbMemberProjectSubitem.setAmountReceivable(BigDecimal.ZERO);
+ }
+ if (StringUtils.isNotBlank(councilChargeNoticeNo)) {
+ tbMemberProjectSubitem.setChargeNoticeNo(councilChargeNoticeNo);
+ }
+ if (StringUtils.isNotBlank(chargeNoticeFileId)) {
+ tbMemberProjectSubitem.setChargeNoticeId(chargeNoticeFileId);
+ }
+ tbMemberProjectSubitem.setTaxRate(StaticConfig.TAX_RATE);
+ BigDecimal noTaxAmount = tbMemberProjectSubitem.getAmountReceivable().divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
+ BigDecimal tax = tbMemberProjectSubitem.getAmountReceivable().subtract(noTaxAmount);
+ tbMemberProjectSubitem.setNoTaxAmount(noTaxAmount);
+ tbMemberProjectSubitem.setTax(tax);
+ setDefaultCreateValue(tbMemberProjectSubitem);
+ //赋值会员编号
+ TbMemberProjectSubitem takeEffectInfo = memberProjectSubitemService.getTakeEffectInfo(companyId);
+ if (takeEffectInfo!=null){
+ tbMemberProjectSubitem.setMemberNo(takeEffectInfo.getMemberNo());
+ }
+ tbMemberProjectSubitems.add(tbMemberProjectSubitem);
+ }
+ memberProjectSubitemService.saveBatch(tbMemberProjectSubitems);
+ }
+ /**
+ * 创建时默认值
+ */
+ private void setDefaultCreateValue(TbMemberProjectSubitem tbMemberProjectSubitem) {
+ //实收金额
+ tbMemberProjectSubitem.setPaidAmount(BigDecimal.ZERO);
+ //到账
+ tbMemberProjectSubitem.setInAccount(PayProjectCommon.IN_ACCOUNT0);
+ //开票
+ tbMemberProjectSubitem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
+ //邮寄
+ tbMemberProjectSubitem.setMail(PayProjectCommon.MAIL0);
+ //打包
+ tbMemberProjectSubitem.setPack(PayProjectCommon.PACKAGING0);
+ //提票
+ tbMemberProjectSubitem.setTicketCollection(PayProjectCommon.NO);
+ //会员状态
+ tbMemberProjectSubitem.setMemberStatus(MemberStatusEnum.UNPAID_FEES.getValue());
+ //缴费状态
+ tbMemberProjectSubitem.setPaymentStatus(PaymentStatusEnum.TO_BE_UPLOADED.getCode());
+ }
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupSubItemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupSubItemMapper.xml
index 8e8c8a91..2fb374f9 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupSubItemMapper.xml
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupSubItemMapper.xml
@@ -35,8 +35,7 @@
pdgs.create_time AS createTime,
pdgs.update_by AS updateBy
FROM pay_drafting_group_subitem pdgs
- left join pay_company_management_temporary pcmt on pdgs.charge_company_temporary_id = pcmt.id
- left join pay_company_management pcm on pcmt.company_id = pcm.id
+ left join pay_company_management pcm on pdgs.charge_company_id = pcm.id
pdgs.drafting_group_id = #{payDraftingGroupSubItem.draftingGroupId} AND (pdgs.check_result = 1 OR pdgs.check_result = 2)
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupServiceImpl.java
index 7c3bc046..37590ef0 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupServiceImpl.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupServiceImpl.java
@@ -15,7 +15,6 @@ import com.jero.common.service.RolePermissionService;
import com.jero.common.system.vo.LoginUser;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
-import com.jero.drafting.common.DraftingConstant;
import com.jero.drafting.entity.PayDraftingGroup;
import com.jero.drafting.entity.PayDraftingGroupResearchProject;
import com.jero.drafting.entity.PayDraftingGroupSubItem;
@@ -331,7 +330,7 @@ public class PayDraftingGroupServiceImpl extends ServiceImpl subItemContacts = payDraftingGroupSubItemContactsMapper.getSubItemContacts(id);
List temporaryIds = subItemContacts.stream().map(PayDraftingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
- payContactsManagementTemporaryService.removeByIds(temporaryIds);
+ // paycontactsManagementTemporaryService.removeByIds(temporaryIds);
}
/**
@@ -439,13 +439,13 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl list = payDraftingGroupSubItemOld.getPayDraftingGroupSubItemContactsList().stream().map(PayDraftingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
- payContactsManagementTemporaryService.removeByIds(list);
+ // paycontactsManagementTemporaryService.removeByIds(list);
}
// 删除联系人记录
LambdaUpdateWrapper updatePayDraftingGroupSubItemContacts = new LambdaUpdateWrapper<>();
@@ -464,7 +464,7 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl {
*/
Result> addPayBill(PayMailBillVO payMailBill);
+ int getMakeInvoice(BigDecimal amountReceivable, Integer needInvoice, BigDecimal invoiceAmount);
+
/**
* 编辑开票
* @param payMailBillVo
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java
index 30705ce5..4b089794 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java
@@ -16,7 +16,6 @@ import com.jero.common.enums.ManagementMessageEnums;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService;
import com.jero.common.system.vo.LoginUser;
-import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
@@ -25,7 +24,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.entity.BillingInfo;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.mapper.PayMailBillMapper;
@@ -40,7 +38,6 @@ 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.*;
import com.jero.modules.system.entity.SysUser;
@@ -754,28 +751,7 @@ public class PayMailBillServiceImpl extends ServiceImpl开票总额 && 开票总额!=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;
- }
+ makeInvoice = getMakeInvoice(amountReceivable, needInvoice, invoiceAmount);
//更新项目表开票状态
switch (payMailBillProject.getProjectType().toString()) {
@@ -844,6 +820,43 @@ public class PayMailBillServiceImpl extends ServiceImpl开票总额 && 开票总额!=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;
+ }
+ return makeInvoice;
+ }
+
//校验不同项目是否属于同一个公司,开票金额是否大于当前未开票金额,企业名称是否审核
private String checkCompanyProject(List bmpList) {
@@ -1311,28 +1324,7 @@ public class PayMailBillServiceImpl extends ServiceImpl开票总额 && 开票总额!=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;
- }
+ makeInvoice = getMakeInvoice(amountReceivable, needInvoice, invoiceAmount);
//更新项目表开票状态
switch (payMailBillProject.getProjectType().toString()) {
@@ -1662,28 +1654,8 @@ public class PayMailBillServiceImpl extends ServiceImpl开票总额 && 开票总额!=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;
- }
+ makeInvoice = getMakeInvoice(amountReceivable, needInvoice, invoiceAmount);
//更新项目表开票状态
switch (oldBmp.getProjectType().toString()) {
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CouncilMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CouncilMeetingSituationController.java
index 5b6874bf..2da291b2 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CouncilMeetingSituationController.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CouncilMeetingSituationController.java
@@ -29,7 +29,9 @@ import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
+import java.text.SimpleDateFormat;
import java.util.Arrays;
+import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -81,6 +83,12 @@ public class CouncilMeetingSituationController extends JeroController checkRegisterBatch(@RequestBody CheckVO checkVO) {
+ List ids = Arrays.asList(checkVO.getIds().split(","));
+ List checkVOS = ids.stream()
+ .map(id -> {
+ CheckVO checkVO1 = new CheckVO();
+ checkVO1.setCheckResult(checkVO.getCheckResult());
+ checkVO1.setCheckRemark(checkVO.getCheckRemark());
+ checkVO1.setId(id);
+ return checkVO1;
+ })
+ .collect(Collectors.toList());
+ checkVOS.forEach(payMeetingSituationService::checkRegister);
+ return Result.OK("审核成功!");
+ }
+
// /**
// * 审核缴费凭证
// */
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingHotelRecommendController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingHotelRecommendController.java
new file mode 100644
index 00000000..cb743a1b
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingHotelRecommendController.java
@@ -0,0 +1,76 @@
+package com.jero.meeting.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.jero.common.api.vo.Result;
+import com.jero.common.system.base.controller.JeroController;
+import com.jero.meeting.entity.PayMeetingHotelRecommend;
+import com.jero.meeting.service.IPayMeetingHotelRecommendService;
+import com.jero.meeting.vo.excel.PayMeetingHotelRecommendExcel;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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.util.List;
+
+/**
+ *
+ * 会议酒店推荐表 前端控制器
+ *
+ *
+ * @author sz
+ * @since 2024-07-10
+ */
+@Api(tags = "会议酒店推荐")
+@RestController
+@RequestMapping("/meeting/payMeetingHotelRecommend")
+@Slf4j
+public class PayMeetingHotelRecommendController extends JeroController {
+
+ @Resource
+ private IPayMeetingHotelRecommendService payMeetingHotelRecommendService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param meetingHotelRecommend 会议酒店推荐
+ * @param pageNo 页数
+ * @param pageSize 条数
+ */
+ @RequiresPermissions("recommendHotelPage:list")
+ @ApiOperation(value = "会议酒店推荐-分页列表查询", notes = "会议酒店推荐-分页列表查询")
+ @GetMapping(value = "/page")
+ public Result> queryPageList(PayMeetingHotelRecommend meetingHotelRecommend,
+ @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+ @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+ HttpServletRequest req) {
+ IPage pageList = payMeetingHotelRecommendService.queryHotelRecommendS(meetingHotelRecommend, pageNo, pageSize, req);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 导出excel模板
+ */
+ @RequiresPermissions("recommendHotelPage:downTemplate")
+ @ApiOperation(value = "导出模板")
+ @GetMapping(value = "/exportTemplate")
+ public ModelAndView exportTemplate() {
+ return super.exportTemplate(PayMeetingHotelRecommendExcel.class, "会议酒店推荐表");
+ }
+
+ /**
+ * 导入excel
+ */
+ @RequiresPermissions("recommendHotelPage:import")
+ @ApiOperation(value = "导入")
+ @PostMapping(value = "/importXls")
+ public Result
+ *
+ * @author sz
+ * @since 2024-07-10
+ */
+@Data
+public class PayMeetingHotelRecommendExcel implements Serializable {
+
+ @ApiModelProperty(value = "推荐人")
+ @Excel(name = "推荐人", width = 15)
+// @NotBlank(message = "推荐人不能为空")
+ @Size(max = 50, message = "推荐人最大为50字符")
+ private String recommendPeople;
+
+ @ApiModelProperty(value = "酒店名称")
+ @Excel(name = "酒店名称", width = 20)
+// @NotBlank(message = "酒店名称不能为空")
+ @Size(max = 50, message = "酒店名称最大为50字符")
+ private String hotelName;
+
+ @ApiModelProperty(value = "所在省份")
+ @Excel(name = "所在省份", width = 15)
+// @NotBlank(message = "所在省份不能为空")
+ @Size(max = 50, message = "所在省份最大为50字符")
+ private String hotelProvince;
+
+ @ApiModelProperty(value = "所在城市")
+ @Excel(name = "所在城市", width = 15)
+// @NotBlank(message = "所在城市不能为空")
+ @Size(max = 50, message = "所在城市最大为50字符")
+ private String hotelCity;
+
+ @ApiModelProperty(value = "是否举办过标准院会议 1-是 0-否")
+ @Excel(name = "是否举办过标准院会议", width = 25)
+// @NotBlank(message = "是否举办过标准院会议不能为空")
+ private String isHold;
+
+ @ApiModelProperty(value = "曾举办的会议类型")
+ @Excel(name = "曾举办的会议类型", width = 25)
+// @NotBlank(message = "曾举办的会议类型不能为空")
+ @Size(max = 50, message = "曾举办的会议类型最大为50字符")
+ private String meetingType;
+
+ @ApiModelProperty(value = "酒店联系方式")
+ @Excel(name = "酒店联系方式", width = 15)
+// @NotBlank(message = "酒店联系方式不能为空")
+ @Size(max = 50, message = "酒店联系方式最大为50字符")
+// @Pattern(regexp = "^(1[3-9]\\d{9})$|^(0\\d{2,3}-\\d{7,8})$", message = "酒店联系方式格式错误")
+ private String contact;
+
+ @ApiModelProperty(value = "备注")
+ @Excel(name = "备注", width = 15)
+ @Size(max = 1000, message = "备注最大为1000字符")
+ private String remark;
+}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/AnnualMemberProjectController.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/AnnualMemberProjectController.java
new file mode 100644
index 00000000..3c2ef6bb
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/AnnualMemberProjectController.java
@@ -0,0 +1,84 @@
+package com.jero.member.controller;
+
+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.system.base.controller.JeroController;
+import com.jero.common.util.oConvertUtils;
+import com.jero.member.entity.TbMemberProjectSubitem;
+import com.jero.member.service.IAnnualMemberProjectService;
+import com.jero.member.service.ITbMemberProjectSubitemService;
+import com.jero.member.vo.AnnualMemberProjectExcelVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+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;
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 年度会员维护
+ */
+@Api(tags="年度会员维护")
+@RestController
+@RequestMapping("/member/annulMemberProject")
+@Slf4j
+public class AnnualMemberProjectController extends JeroController {
+
+ @Resource
+ private IAnnualMemberProjectService annualMemberProjectService;
+
+
+ /**
+ * 分页列表查询
+ */
+ @RequiresPermissions("memberStatistic:search")
+ @ApiOperation(value="年度会员维护-分页列表查询", notes="年度会员维护-分页列表查询")
+ @GetMapping(value = "/page")
+ public Result> queryPageList(TbMemberProjectSubitem tbMemberProjectSubitem,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ Page page = new Page<>(pageNo, pageSize);
+ IPage pageList = annualMemberProjectService.pageList(page, req, tbMemberProjectSubitem);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 导出excel
+ */
+ @ApiOperation(value = "导出")
+ @RequiresPermissions("memberStatistic:export")
+ @GetMapping(value = "/exportXls")
+ public ModelAndView exportXls(HttpServletRequest req, TbMemberProjectSubitem tbMemberProjectSubitem) {
+ List pageList = annualMemberProjectService.pageList(req, tbMemberProjectSubitem);
+ List recordList;
+ // 过滤选中数据
+ String selections = req.getParameter("selections");
+ if (oConvertUtils.isNotEmpty(selections)) {
+ List selectionList = Arrays.asList(selections.split(","));
+ recordList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
+ } else {
+ recordList = pageList;
+ }
+ List exportList = new ArrayList<>();
+ for (TbMemberProjectSubitem item : recordList) {
+ AnnualMemberProjectExcelVO annualMemberProjectExcelVO = new AnnualMemberProjectExcelVO();
+ annualMemberProjectExcelVO.setMemberNo(item.getMemberNo());
+ annualMemberProjectExcelVO.setMemberStatus(item.getMemberStatus());
+ annualMemberProjectExcelVO.setLiaisonManId(item.getLiaisonManId());
+ annualMemberProjectExcelVO.setCompanyName(item.getCompanyName());
+ annualMemberProjectExcelVO.setInvalidationDateStr(item.getInvalidationDateStr());
+ annualMemberProjectExcelVO.setEffectiveDateStr(item.getEffectiveDateStr());
+ exportList.add(annualMemberProjectExcelVO);
+ }
+ return super.exportListXls(exportList, AnnualMemberProjectExcelVO.class, "会员信息统计");
+ }
+}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java
index 62188e81..707b19ca 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/PayMemberProjectSubitemController.java
@@ -2,6 +2,7 @@ package com.jero.member.controller;
import java.math.BigDecimal;
import java.time.LocalDate;
+import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -36,6 +37,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.member.vo.PayMemberProjectSubitemExcel;
import com.jero.project.common.PayProjectCommon;
+import com.jero.project.entity.PayWorkingGroupSubItem;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.commons.collections.CollectionUtils;
@@ -87,6 +89,17 @@ public class PayMemberProjectSubitemController extends JeroController parameterMap = req.getParameterMap();
QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(payMemberProjectSubitem, parameterMap);
+ // 处理预计到账开始日期,拼接 -01
+ if (StringUtils.isNotBlank(payMemberProjectSubitem.getEstimatedArrivalStartDate())) {
+ String startDate = payMemberProjectSubitem.getEstimatedArrivalStartDate() + "-01";
+ payMemberProjectSubitem.setEstimatedArrivalStartDate(startDate);
+ }
+ // 处理预计到账结束日期,计算该月最后一天
+ if (StringUtils.isNotBlank(payMemberProjectSubitem.getEstimatedArrivalEndDate())) {
+ YearMonth yearMonth = YearMonth.parse(payMemberProjectSubitem.getEstimatedArrivalEndDate(), DateTimeFormatter.ofPattern("yyyy-MM"));
+ LocalDate endDate = yearMonth.atEndOfMonth();
+ payMemberProjectSubitem.setEstimatedArrivalEndDate(endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+ }
// 预计到账开始日期
String estimatedArrivalStartDate = payMemberProjectSubitem.getEstimatedArrivalStartDate();
// 预计到账结束日期
@@ -112,6 +125,17 @@ public class PayMemberProjectSubitemController extends JeroController page = new Page<>(pageNo, pageSize);
IPage pageList = memberProjectSubitemService.getPage(page, queryWrapper);
+ if(!CollectionUtils.isEmpty(pageList.getRecords())){
+ List list = pageList.getRecords();
+ list.forEach(p->{
+ // 处理 预估到账日期 字段 ,变为yyyy-MM格式
+ if(StringUtils.isNotBlank(p.getEstimatedArrivalDate())){
+ String estimatedArrivalDate = p.getEstimatedArrivalDate();
+ String formattedDate = estimatedArrivalDate.substring(0, 7); // 截取字符串的前7个字符 "yyyy-MM"
+ p.setEstimatedArrivalDate(formattedDate);
+ }
+ });
+ }
return Result.OK(pageList);
}
@@ -170,6 +194,7 @@ public class PayMemberProjectSubitemController extends JeroController page = new Page<>(-1, -1);
IPage getPage = memberProjectSubitemService.getPage(page, queryWrapper);
List pageList = getPage.getRecords();
@@ -265,6 +317,11 @@ public class PayMemberProjectSubitemController extends JeroController incomingUpdateCertificate(@RequestBody TbCertificatePayment tbCertificatePayment){
- CertificatePaymentInfo certificatePaymentInfo = new CertificatePaymentInfo();
- certificatePaymentInfo.setId(tbCertificatePayment.getTbPaymentId());
- certificatePaymentInfo.setMemberId(tbCertificatePayment.getMemberId());
- certificatePaymentInfo.setInvoiceRequirements(tbCertificatePayment.getInvoiceRequirements());
- certificatePaymentInfo.setHeaderName(tbCertificatePayment.getHeaderName());
- certificatePaymentInfo.setTaxNumber(tbCertificatePayment.getTaxNumber());
- certificatePaymentInfo.setInvoiceAddress(tbCertificatePayment.getInvoiceAddress());
- certificatePaymentInfo.setInvoicePhone(tbCertificatePayment.getInvoicePhone());
- certificatePaymentInfo.setDepositBank(tbCertificatePayment.getDepositBank());
- certificatePaymentInfo.setBankAccount(tbCertificatePayment.getBankAccount());
-
- AuthenticationUtils.post("/certificatePaymentInfo/incomingUpdateCertificate",null,certificatePaymentInfo);
+ //CertificatePaymentInfo certificatePaymentInfo = new CertificatePaymentInfo();
+ //certificatePaymentInfo.setId(tbCertificatePayment.getTbPaymentId());
+ //certificatePaymentInfo.setMemberId(tbCertificatePayment.getMemberId());
+ //certificatePaymentInfo.setInvoiceRequirements(tbCertificatePayment.getInvoiceRequirements());
+ //certificatePaymentInfo.setHeaderName(tbCertificatePayment.getHeaderName());
+ //certificatePaymentInfo.setTaxNumber(tbCertificatePayment.getTaxNumber());
+ //certificatePaymentInfo.setInvoiceAddress(tbCertificatePayment.getInvoiceAddress());
+ //certificatePaymentInfo.setInvoicePhone(tbCertificatePayment.getInvoicePhone());
+ //certificatePaymentInfo.setDepositBank(tbCertificatePayment.getDepositBank());
+ //certificatePaymentInfo.setBankAccount(tbCertificatePayment.getBankAccount());
+ //
+ //AuthenticationUtils.post("/certificatePaymentInfo/incomingUpdateCertificate",null,certificatePaymentInfo);
return Result.OK();
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/TbMemberProjectSubitemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/TbMemberProjectSubitemController.java
index 8fc67402..9cdce667 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/TbMemberProjectSubitemController.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/TbMemberProjectSubitemController.java
@@ -1,29 +1,25 @@
package com.jero.member.controller;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.time.LocalDate;
+import java.time.YearMonth;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import cn.hutool.core.date.DatePattern;
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.date.format.DateParser;
-import com.jero.aspect.annotation.CompanyNameTranslate;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.query.QueryGenerator;
-import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
-import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.oConvertUtils;
-import com.jero.member.entity.PayMemberProjectSubitem;
+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.member.entity.TbMemberProject;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.ITbMemberProjectSubitemService;
@@ -31,6 +27,10 @@ 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.jero.member.vo.*;
+import com.jero.temporary.entity.PayCompanyManagementTemporary;
+import com.jero.temporary.entity.PayContactsManagementTemporary;
+import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
+import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.commons.lang3.StringUtils;
@@ -60,6 +60,15 @@ public class TbMemberProjectSubitemController extends JeroController page = new Page<>(pageNo, pageSize);
+ // 处理预计到账开始日期,拼接 -01
+ if (StringUtils.isNotBlank(tbMemberProjectSubitem.getEstimatedArrivalDate_begin())) {
+ String startDate = tbMemberProjectSubitem.getEstimatedArrivalDate_begin() + "-01";
+ tbMemberProjectSubitem.setEstimatedArrivalDate_begin(startDate);
+ }
+ // 处理预计到账结束日期,计算该月最后一天
+ if (StringUtils.isNotBlank(tbMemberProjectSubitem.getEstimatedArrivalDate_end())) {
+ YearMonth yearMonth = YearMonth.parse(tbMemberProjectSubitem.getEstimatedArrivalDate_end(), DateTimeFormatter.ofPattern("yyyy-MM"));
+ LocalDate endDate = yearMonth.atEndOfMonth();
+ tbMemberProjectSubitem.setEstimatedArrivalDate_end(endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+ }
IPage pageList = tbMemberProjectSubitemService.pageList(page, req, tbMemberProjectSubitem);
for (TbMemberProjectSubitem record : pageList.getRecords()) {
record.setEmail(PasswordUtil.decrypt(record.getEmail()));
@@ -264,6 +284,17 @@ public class TbMemberProjectSubitemController extends JeroController pageList = tbMemberProjectSubitemService.pageList(request,tbMemberProjectSubitem);
List exportList;
// 过滤选中数据
@@ -274,7 +305,27 @@ public class TbMemberProjectSubitemController extends JeroController0 && <总金额(半满标志)))")
+ @Excel(name = "是否确收", width = 15, dicCode = "affirmi_ncome")
private Integer affirmIncome;
/**邮寄*/
@@ -209,7 +247,7 @@ public class TbMemberProjectSubitem implements Serializable {
/**提票"*/
@ApiModelProperty(value = "提票")
- //@Excel(name = "提票", width = 15,dicCode = "yn")
+ @Excel(name = "是否提票", width = 15,dicCode = "yn")
@Dict(dicCode = "yn")
private Integer ticketCollection;
@@ -400,4 +438,9 @@ public class TbMemberProjectSubitem implements Serializable {
@ApiModelProperty(value = "权益状态")
@TableField(exist = false)
private String equityStatus;
+
+ @ApiModelProperty(value = "信用代码")
+ @TableField(exist = false)
+ @Excel(name = "信用代码", width = 15)
+ private String dutyCode;
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/AnnualMemberProjectMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/AnnualMemberProjectMapper.java
new file mode 100644
index 00000000..c1095cb9
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/AnnualMemberProjectMapper.java
@@ -0,0 +1,20 @@
+package com.jero.member.mapper;
+
+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.member.entity.TbMemberProjectSubitem;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * 年度会员维护
+ */
+public interface AnnualMemberProjectMapper {
+
+ IPage pageList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+ List pageList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectSubitemMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectSubitemMapper.java
index d6df6678..0927ec31 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectSubitemMapper.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/PayMemberProjectSubitemMapper.java
@@ -23,4 +23,7 @@ public interface PayMemberProjectSubitemMapper extends BaseMapper queryPageListCompany(@Param(Constants.WRAPPER) QueryWrapper queryWrapper);
IPage getPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+
+ List listByYear(@Param("year") String year);
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java
index bf897d6b..563dad3e 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java
@@ -61,4 +61,8 @@ public interface TbMemberProjectSubitemMapper extends BaseMapper pageAllMemberName(Page page);
List getAllYearInfoByCompanyId(@Param("companyId") String companyId);
+
+ List listByYear(@Param("year") String year);
+
+ List queryListCompanyYear(@Param(Constants.WRAPPER) QueryWrapper queryTbMemberProjectSubitem);
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/AnnualMemberProjectMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/AnnualMemberProjectMapper.xml
new file mode 100644
index 00000000..b32681de
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/AnnualMemberProjectMapper.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml
index 34fdee29..20742432 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/PayMemberProjectSubitemMapper.xml
@@ -62,7 +62,6 @@
+
+
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml
index 86f74404..5801f0c9 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml
@@ -70,6 +70,7 @@
+
-
+
+
+ select tmps.*,tmp.year
+ from tb_member_project_subitem tmps
+ LEFT JOIN tb_member_project tmp on tmp.id = tmps.project_id
+ where tmp.year = #{year}
+
+
+
+ select tmps.*
+ from tb_member_project_subitem tmps
+ LEFT JOIN tb_member_project tmp on tmp.id = tmps.project_id
+ ${ew.customSqlSegment}
+
\ No newline at end of file
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IAnnualMemberProjectService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IAnnualMemberProjectService.java
new file mode 100644
index 00000000..77b690bb
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IAnnualMemberProjectService.java
@@ -0,0 +1,66 @@
+package com.jero.member.service;
+
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+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.jero.common.service.RolePermissionService;
+import com.jero.common.system.query.QueryGenerator;
+import com.jero.common.system.vo.LoginUser;
+import com.jero.member.entity.TbMemberProjectSubitem;
+import com.jero.member.mapper.AnnualMemberProjectMapper;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * 年度会员维护
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class IAnnualMemberProjectService {
+
+ @Resource
+ private AnnualMemberProjectMapper annualMemberProjectMapper;
+ @Resource
+ private RolePermissionService rolePermissionService;
+
+
+ public IPage pageList(Page page, HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem) {
+ QueryWrapper queryWrapper = generateQueryWrapper(request, tbMemberProjectSubitem);
+ return annualMemberProjectMapper.pageList(page,queryWrapper);
+ }
+
+ public List pageList(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem) {
+ QueryWrapper queryWrapper = generateQueryWrapper(request, tbMemberProjectSubitem);
+ return annualMemberProjectMapper.pageList(queryWrapper);
+ }
+
+ private QueryWrapper generateQueryWrapper(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem){
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(tbMemberProjectSubitem, request.getParameterMap());
+ String invalidationDateStr = tbMemberProjectSubitem.getInvalidationDateStr();
+ String effectiveDateStr = tbMemberProjectSubitem.getEffectiveDateStr();
+ if (StringUtils.isNotBlank(invalidationDateStr)){
+ DateTime invalidationDate = DateUtil.parse(invalidationDateStr, DatePattern.NORM_MONTH_PATTERN);
+ queryWrapper.eq("year(invalidation_date)",invalidationDate.year());
+ queryWrapper.eq("month(invalidation_date)",invalidationDate.month()+1);
+ }
+ if (StringUtils.isNotBlank(effectiveDateStr)){
+ DateTime effectiveDate = DateUtil.parse(effectiveDateStr, DatePattern.NORM_MONTH_PATTERN);
+ queryWrapper.eq("year(effective_date)",effectiveDate.year());
+ queryWrapper.eq("month(effective_date)",effectiveDate.month()+1);
+ }
+// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+// if (!rolePermissionService.getRolePermission("memberStatistic:search")) {
+// queryWrapper.eq("tmp.director_id",sysUser.getId());
+// }
+ return queryWrapper;
+ }
+
+}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectService.java
index b4ebb44b..467c94d7 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectService.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectService.java
@@ -17,7 +17,9 @@ import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.project.common.PayProjectCommon;
+import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayCommonProject;
+import com.jero.project.service.AnnualDataLockingService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -51,6 +53,8 @@ public class IPayMemberProjectService extends ServiceImpl0){
throw new JeroBootException("项目名称重复");
}
+ String year = payMemberProject.getParticularYear();
+ //判断用户是否能操作所选年份数据
+ AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
//判断联系人
String directorId = payMemberProject.getDirectorId();
SysUser sysUser = userMapper.selectById(directorId);
@@ -83,6 +90,16 @@ public class IPayMemberProjectService extends ServiceImpl query = new LambdaQueryWrapper<>();
query.eq(PayMemberProjectSubitem::getProjectId, id);
List listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
@@ -109,6 +131,12 @@ public class IPayMemberProjectService extends ServiceImpl ids) {
+ for (String id : ids) {
+ PayMemberProject memberProjectOld = this.getById(id);
+ String year1 = memberProjectOld.getParticularYear();
+ //判断用户是否能操作所选年份数据
+ AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year1);
+ }
LambdaQueryWrapper query = new LambdaQueryWrapper<>();
query.in(PayMemberProjectSubitem::getProjectId, ids);
List listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectSubitemService.java
index 8da6e752..e59fbb62 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectSubitemService.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/IPayMemberProjectSubitemService.java
@@ -25,11 +25,11 @@ import com.jero.member.entity.PayMemberProject;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.mapper.PayMemberProjectMapper;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
-import com.jero.member.service.IPayMemberProjectService;
-import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.project.common.PayProjectCommon;
+import com.jero.project.entity.AnnualDataLocking;
+import com.jero.project.service.AnnualDataLockingService;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
@@ -80,6 +80,8 @@ public class IPayMemberProjectSubitemService extends ServiceImpl wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMemberProjectSubitem::getProjectId,projectId);
@@ -97,8 +102,7 @@ public class IPayMemberProjectSubitemService extends ServiceImpl0){
throw new JeroBootException("会员单位已经存在");
}
-// validMemberProjectSubitem(payMemberProjectSubitem);
- validMemberProjectSubitemAdd(payMemberProjectSubitem);
+ validMemberProjectSubitemAdd(payMemberProjectSubitem,annualDataLocking);
//实收金额
payMemberProjectSubitem.setPaidAmount(new BigDecimal("0.00"));
//到账
@@ -160,8 +164,16 @@ public class IPayMemberProjectSubitemService extends ServiceImpl errors = new ArrayList<>();
// 企业
try {
- PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId());
+ PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId(), annualDataLocking);
if (Objects.isNull(chargeCompanyName)) {
throw new JeroBootException("企业名称为空!");
}
@@ -272,7 +271,7 @@ public class IPayMemberProjectSubitemService extends ServiceImpl update = new LambdaUpdateWrapper<>();
update.eq(PayPackCompanyProject::getProjectId,payMemberProjectSubitem.getId());
- payPackCompanyProjectService.remove(update);
+ //payPackCompanyProjectService.remove(update);
// 删除企业联系人临时数据
- companyManagementTemporaryService.removeById(payMemberProjectSubitem.getCompanyTemporaryId());
- contactsManagementTemporaryService.removeByIds(Arrays.asList(payMemberProjectSubitem.getCompanyContactTemporaryId(),payMemberProjectSubitem.getPostContactTemporaryId()));
+ //companyManagementTemporaryService.removeById(payMemberProjectSubitem.getCompanyTemporaryId());
+ // contactsManagementTemporaryService.removeByIds(Arrays.asList(payMemberProjectSubitem.getCompanyContactTemporaryId(),payMemberProjectSubitem.getPostContactTemporaryId()));
}
/**
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectService.java
index b872bdee..d3d58bfd 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectService.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectService.java
@@ -18,6 +18,8 @@ import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.TbMemberProjectMapper;
import com.jero.member.service.ITbMemberProjectService;
import com.jero.member.service.ITbMemberProjectSubitemService;
+import com.jero.project.entity.AnnualDataLocking;
+import com.jero.project.service.AnnualDataLockingService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -53,12 +55,16 @@ public class ITbMemberProjectService extends ServiceImpl query = new LambdaQueryWrapper<>();
query.eq(TbMemberProjectSubitem::getProjectId, id);
List listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
@@ -111,6 +131,12 @@ public class ITbMemberProjectService extends ServiceImpl ids) {
+ List tbMemberProjects = this.listByIds(ids);
+ for (TbMemberProject memberProjectOld : tbMemberProjects) {
+ String oldYear = memberProjectOld.getYear();
+ //判断用户是否能操作所选年份数据
+ AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
+ }
LambdaQueryWrapper query = new LambdaQueryWrapper<>();
query.in(TbMemberProjectSubitem::getProjectId, ids);
List listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java
index b0eac033..2774ad6e 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java
@@ -1,6 +1,4 @@
package com.jero.member.service;
-import java.math.RoundingMode;
-import java.util.*;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DatePattern;
@@ -11,6 +9,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.common.ProjectCommon;
import com.jero.common.enums.PaymentStatusEnum;
import com.jero.common.exception.JeroBootException;
@@ -38,7 +37,10 @@ import com.jero.member.entity.TbMemberProject;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.enums.MemberStatusEnum;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
-import com.jero.member.vo.*;
+import com.jero.member.vo.CopyMemberVO;
+import com.jero.member.vo.EditMemberBenefitsVO;
+import com.jero.member.vo.QueryAggVO;
+import com.jero.member.vo.TbMemberProjectSubitemExcelImport;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.payment.entity.PayConfirmPaymentRecord;
@@ -46,11 +48,15 @@ import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.service.impl.PayConfirmPaymentRecordService;
import com.jero.project.common.PayProjectCommon;
-import com.jero.project.entity.PayCommonProject;
-import com.jero.project.entity.PayWorkingGroupSubItem;
+import com.jero.project.entity.AnnualDataLocking;
+import com.jero.project.service.AnnualDataLockingService;
import com.jero.statistics.entity.MemberLineChartMap;
import com.jero.statistics.entity.MemberLineChartVO;
import com.jero.statistics.entity.MemberPieChartVO;
+import com.jero.temporary.entity.PayCompanyManagementTemporary;
+import com.jero.temporary.entity.PayContactsManagementTemporary;
+import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
+import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import com.jero.valid.group.ChargeNotice;
import com.jero.valid.group.Contract;
import org.apache.commons.collections.CollectionUtils;
@@ -58,17 +64,17 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-
-import java.math.BigDecimal;
-import java.util.stream.Collectors;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
-
-import static freemarker.template.utility.NullArgumentException.check;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* @Description: 标协会员项目成员表
@@ -110,31 +116,26 @@ public class ITbMemberProjectSubitemService extends ServiceImpl wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TbMemberProjectSubitem::getProjectId, projectId);
wrapper.eq(TbMemberProjectSubitem::getCompanyId, companyId);
@@ -181,13 +182,13 @@ public class ITbMemberProjectSubitemService extends ServiceImpl update = new LambdaUpdateWrapper<>();
update.eq(TbMemberProjectSubitem::getId, tbMemberProjectSubitem.getId());
update.set(TbMemberProjectSubitem::getPack, PayProjectCommon.PACKAGING1);
@@ -196,7 +197,13 @@ public class ITbMemberProjectSubitemService extends ServiceImpl excelData) {
+ TbMemberProject memberProject = tbMemberProjectService.getById(projectId);
+ String oldYear = memberProject.getYear();
+ //判断用户是否能操作所选年份数据
+ AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
int errorRowNum = 2;
List insertList = new ArrayList<>();
List errorMessage = new ArrayList<>();
@@ -252,6 +259,7 @@ public class ITbMemberProjectSubitemService extends ServiceImpl wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(PayPaymentRecord::getProjectId,id);
@@ -524,9 +613,18 @@ public class ITbMemberProjectSubitemService extends ServiceImpl generateQueryWrapper(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem){
- QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(tbMemberProjectSubitem, request.getParameterMap());
+ Map parameterMap = request.getParameterMap();
+ String[] strings = parameterMap.get("companyName");
+ parameterMap.remove("companyName");
+ tbMemberProjectSubitem.setCompanyName(null);
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(tbMemberProjectSubitem, parameterMap);
String invalidationDateStr = tbMemberProjectSubitem.getInvalidationDateStr();
String effectiveDateStr = tbMemberProjectSubitem.getEffectiveDateStr();
+ String estimatedArrivalDateBegin = tbMemberProjectSubitem.getEstimatedArrivalDate_begin();
+ String estimatedArrivalDateEnd = tbMemberProjectSubitem.getEstimatedArrivalDate_end();
+ if (strings != null){
+ queryWrapper.like("pcm.company_name",strings[0]);
+ }
if (StringUtils.isNotBlank(invalidationDateStr)){
DateTime invalidationDate = DateUtil.parse(invalidationDateStr, DatePattern.NORM_MONTH_PATTERN);
queryWrapper.eq("year(invalidation_date)",invalidationDate.year());
@@ -537,6 +635,12 @@ public class ITbMemberProjectSubitemService extends ServiceImpl add(@RequestBody PayPackCompany payPackCompany) {
+ if (!StringUtils.isBlank(payPackCompany.getEstimatedArrivalDate())) {
+ payPackCompany.setEstimatedArrivalDate(payPackCompany.getEstimatedArrivalDate() + "-01");
+ }
+
StringBuilder msg = ValidUtil.validateAll(payPackCompany);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -163,6 +175,9 @@ public class PayPackCompanyController extends JeroController edit(@RequestBody PayPackCompany payPackCompany) {
+ if (!StringUtils.isBlank(payPackCompany.getEstimatedArrivalDate())) {
+ payPackCompany.setEstimatedArrivalDate(payPackCompany.getEstimatedArrivalDate() + "-01");
+ }
StringBuilder msg = ValidUtil.validateAll(payPackCompany);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -292,7 +307,15 @@ public class PayPackCompanyController extends JeroController judgeCompanyIsPackaged(@RequestParam(name="companyId") String companyId){
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(PayPackCompany::getCompanyId,companyId);
+ wrapper.eq(PayPackCompany::getPackYear, DateUtil.thisYear());
+ List list = payPackCompanyService.list(wrapper);
+ return Result.OK(!list.isEmpty()) ;
+ }
/**
* 导出excel
@@ -351,6 +374,11 @@ public class PayPackCompanyController extends JeroController queryPageList(PayPackCompanyProject payPackCompanyProject,
- @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
- @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
- HttpServletRequest req) {
- QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(payPackCompanyProject, req.getParameterMap());
- Page page = new Page(pageNo, pageSize);
- IPage pageList = payPackCompanyProjectService.page(page, queryWrapper);
- return Result.OK(pageList);
- }
-
/**
* 列表查询
*
@@ -223,61 +201,6 @@ public class PayPackCompanyProjectController extends JeroController edit(@RequestBody PayPackCompanyProject payPackCompanyProject) {
- payPackCompanyProjectService.updateById(payPackCompanyProject);
- return Result.OK("编辑成功!");
- }
-
- /**
- * 通过id删除
- *
- * @param id
- * @return
- */
-// @ApiOperation(value="pay_pack_company_project-通过id删除", notes="pay_pack_company_project-通过id删除")
-// @GetMapping(value = "/delete")
- public Result> delete(@RequestParam(name = "id", required = true) String id) {
- payPackCompanyProjectService.removeById(id);
- return Result.OK("删除成功!");
- }
-
- /**
- * 批量删除
- *
- * @param ids
- * @return
- */
-// @ApiOperation(value="pay_pack_company_project-批量删除", notes="pay_pack_company_project-批量删除")
-// @GetMapping(value = "/deleteBatch")
- public Result> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
- this.payPackCompanyProjectService.removeByIds(Arrays.asList(ids.split(",")));
- return Result.OK("批量删除成功!");
- }
-
- /**
- * 通过id查询
- *
- * @param id
- * @return
- */
-// @ApiOperation(value="pay_pack_company_project-通过id查询", notes="pay_pack_company_project-通过id查询")
-// @GetMapping(value = "/queryById")
- public Result> queryById(@RequestParam(name = "id", required = true) String id) {
- PayPackCompanyProject payPackCompanyProject = payPackCompanyProjectService.getById(id);
- if (payPackCompanyProject == null) {
- return Result.error("未找到对应数据");
- }
- return Result.OK(payPackCompanyProject);
- }
-
/**
* 导出excel
*
@@ -336,18 +259,6 @@ public class PayPackCompanyProjectController extends JeroController importExcel(HttpServletRequest request, HttpServletResponse response) {
- return super.importExcel(request, response, PayPackCompanyProject.class);
- }
-
/**
* 处理24年历史数据
*/
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/PayPackCompanyMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/PayPackCompanyMapper.java
index 83dc2410..61b2f578 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/PayPackCompanyMapper.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/PayPackCompanyMapper.java
@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.pack.entity.PayPackCompany;
-import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.entity.PayCommonProject;
import org.apache.ibatis.annotations.Param;
@@ -56,4 +55,8 @@ public interface PayPackCompanyMapper extends BaseMapper {
String getConfirmAmountMoney(@Param("payPackCompany") PayPackCompany payPackCompany);
String getComeAllMoney(@Param("payPackCompany") PayPackCompany payPackCompany);
+
+ List listByYear(@Param("year") String year);
+
+ List listByYearNotIn(@Param("yearList") List yearList, @Param("companyManagementId") String companyManagementId);
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/xml/PayPackCompanyMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/xml/PayPackCompanyMapper.xml
index a6980d04..e6601c7f 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/xml/PayPackCompanyMapper.xml
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/xml/PayPackCompanyMapper.xml
@@ -29,7 +29,6 @@
select ppc.*,pcmt.phone,pcmt.email from pay_pack_company ppc
- LEFT JOIN pay_payment_record ppr ON ppr.project_id = ppc.id
LEFT JOIN pay_company_management pcm on ppc.company_id = pcm.id
LEFT JOIN pay_contacts_management_temporary pcmt ON pcmt.id = ppc.company_contact_temporary_id
@@ -109,5 +108,18 @@
+
+ select * from pay_pack_company
+ where pack_year = #{year}
+
+
+ select * from pay_pack_company
+ where
+ company_id = #{companyManagementId}
+ and pack_year not in
+
+ #{item}
+
+
\ No newline at end of file
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/xml/PayPackCompanyProjectMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/xml/PayPackCompanyProjectMapper.xml
index dcac6bce..ca99ebe3 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/xml/PayPackCompanyProjectMapper.xml
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/xml/PayPackCompanyProjectMapper.xml
@@ -30,13 +30,14 @@
( project.phone = '' or project.phone IS NULL, pcmt.phone, project.phone ) AS phone,
IF
( project.email = '' or project.email IS NULL, pcmt.email, project.email ) AS email,
- affirm_income
+ affirm_income,
+ project.sort_no
from
(
select c.id,c.charge_project,c.invoice_amount, c.charge_use, c.principal_id,su.realname as principal_name,c.contacts_temporary_id,c.contacts_temporary_name,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,pcm.phone,pcm.email,affirm_income
- ,c.mail_contacts_id,c.mail_contacts_temporary_id,c.mail_contacts_temporary_name
+ ,c.mail_contacts_id,c.mail_contacts_temporary_id,c.mail_contacts_temporary_name, NULL as sort_no
from pay_common_project c
left join sys_user su on c.principal_id = su.id
LEFT JOIN pay_contacts_management pcm ON c.contacts_temporary_id = pcm.id
@@ -56,7 +57,7 @@
UNION ALL
select gsub.id,g.working_group_project,gsub.invoice_amount, gsub.charge_use, g.principal_id_a,su.realname,gsubc.contacts_temporary_id as contacts_temporary_id,gsubc.contacts_temporary_name as contacts_temporary_name_one,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,pcm.phone,pcm.email,affirm_income
- ,gsub.mail_contacts_id,gsub.mail_contacts_temporary_id,gsub.mail_contacts_temporary_name
+ ,gsub.mail_contacts_id,gsub.mail_contacts_temporary_id,gsub.mail_contacts_temporary_name,g.sort_no
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
@@ -77,7 +78,7 @@
UNION ALL
select sit.id,meeting.meeting_name,sit.invoice_amount,sit.charge_use, meeting.director_id, su.realname,sit.company_contact_temporary_id AS contacts_temporary_id,sit.company_contact_name,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,pcm.phone,pcm.email,affirm_income
- ,sit.post_contact_id as mail_contacts_id,sit.post_contact_temporary_id as mail_contacts_temporary_id,sit.post_contact_name as mail_contacts_temporary_name
+ ,sit.post_contact_id as mail_contacts_id,sit.post_contact_temporary_id as mail_contacts_temporary_id,sit.post_contact_name as mail_contacts_temporary_name, NULL as sort_no
from pay_meeting meeting
left join sys_user su on meeting.director_id = su.id
inner join pay_meeting_situation sit on meeting.id = sit.meeting_id
@@ -98,7 +99,7 @@
UNION ALL
select msub.id,pmp.project_name,msub.invoice_amount,msub.charge_use,pmp.director_id, su.realname,msub.company_contact_temporary_id AS contacts_temporary_id,msub.company_contact_name,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,pcm.phone,pcm.email,affirm_income
- ,msub.post_contact_id as mail_contacts_id,msub.post_contact_temporary_id as mail_contacts_temporary_id,msub.post_contact_name as mail_contacts_temporary_name
+ ,msub.post_contact_id as mail_contacts_id,msub.post_contact_temporary_id as mail_contacts_temporary_id,msub.post_contact_name as mail_contacts_temporary_name, NULL as sort_no
from pay_member_project pmp
left join sys_user su on pmp.director_id = su.id
inner join pay_member_project_subitem msub on pmp.id = msub.project_id
@@ -118,7 +119,7 @@
UNION ALL
select tmsub.id,tmember.project_name,tmsub.invoice_amount,tmsub.charge_use,tmember.director_id, su.realname,'',pcm.name as contacts_temporary_name,tmsub.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,pcm.phone,pcm.email,affirm_income
- ,null as mail_contacts_id,null as mail_contacts_temporary_id,null as mail_contacts_temporary_name
+ ,null as mail_contacts_id,null as mail_contacts_temporary_id,null as mail_contacts_temporary_name, NULL as sort_no
from tb_member_project tmember
left join sys_user su on tmember.director_id = su.id
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
@@ -138,7 +139,7 @@
UNION ALL
select tcp.id,tmember.project_name,tcp.invoice_amount,tcp.charge_use,tmember.director_id, su.realname,'',pcm.name as contacts_temporary_name,tcp.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,pcm.phone,pcm.email,affirm_income
- ,null as mail_contacts_id,null as mail_contacts_temporary_id,null as mail_contacts_temporary_name
+ ,null as mail_contacts_id,null as mail_contacts_temporary_id,null as mail_contacts_temporary_name, NULL as sort_no
from tb_member_project tmember
left join sys_user su on tmember.director_id = su.id
inner join tb_certificate_payment tcp on tmember.id = tcp.project_id
@@ -166,7 +167,19 @@
AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate}
- GROUP BY ppcp.project_id ORDER BY project.paid_amount asc,project.create_time desc
+ GROUP BY ppcp.project_id
+ ORDER BY
+ CASE
+ WHEN project.projectType = 2 THEN 0
+ ELSE 1
+ END,
+ CASE
+ WHEN project.projectType = 2 AND project.sort_no IS NULL THEN 1
+ WHEN project.projectType = 2 THEN 0
+ END,
+ project.sort_no ASC,
+ project.paid_amount ASC,
+ project.create_time DESC
SELECT * FROM (
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyProjectServiceImpl.java
index 7b12b0d4..07306391 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyProjectServiceImpl.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyProjectServiceImpl.java
@@ -3,6 +3,7 @@ package com.jero.pack.service.impl;
import cn.hutool.core.thread.ThreadUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.ManagementMessageEnums;
@@ -16,16 +17,22 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.config.StaticConfig;
import com.jero.contract.common.PayIncomeContractCommon;
+import com.jero.meeting.common.MeetingSubitemCommon;
+import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
+import com.jero.meeting.service.IPayMeetingService;
+import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.member.entity.PayMemberProject;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbCertificatePayment;
import com.jero.member.entity.TbMemberProjectSubitem;
+import com.jero.member.enums.MemberStatusEnum;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.mapper.TbCertificatePaymentMapper;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.service.IPayMemberProjectService;
+import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.common.PackCommon;
@@ -37,12 +44,14 @@ import com.jero.pack.service.IPayPackCompanyService;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.pack.vo.PayProjectExcel;
import com.jero.project.common.PayProjectCommon;
+import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.mapper.PayCommonProjectMapper;
import com.jero.project.mapper.PayWorkingGroupMapper;
import com.jero.project.mapper.PayWorkingGroupSubItemMapper;
+import com.jero.project.service.AnnualDataLockingService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@@ -101,7 +110,14 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl queryListAll(PayPackCompanyProjectInput input) {
@@ -120,7 +136,8 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl query = new LambdaQueryWrapper<>();
query.in(PayPackCompanyProject::getProjectId, Arrays.asList(payPackCompanyProject.getProjectIds()));
@@ -297,6 +319,10 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+ lambdaUpdateWrapper.eq(TbMemberProjectSubitem::getId,projectId);
+ lambdaUpdateWrapper.set(TbMemberProjectSubitem::getEffectiveDate, null);
+ lambdaUpdateWrapper.set(TbMemberProjectSubitem::getInvalidationDate, null);
+ lambdaUpdateWrapper.set(TbMemberProjectSubitem::getMemberNo, null);
+ lambdaUpdateWrapper.set(TbMemberProjectSubitem::getMemberStatus, MemberStatusEnum.UNPAID_FEES.getValue());
+ tbMemberProjectSubitemService.update(lambdaUpdateWrapper);
+ }
// 更新项目状态
projectPackService.updateProjectStatus(packCompanyProject.getProjectId(),String.valueOf(projectType),String.valueOf(PackCommon.PACKAGING0),payPackCompanyProject.getPackId());
payPackCompanyProjectService.removeById(packCompanyProject.getId());
@@ -394,145 +431,145 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(PayPackCompany::getPackYear,"2024");
- List packCompanyList = payPackCompanyService.list(wrapper);
- List packCompanyIdList = packCompanyList.stream().map(PayPackCompany::getId).collect(Collectors.toList());
-
- LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>();
- wrapper1.in(PayPackCompanyProject::getPackId,packCompanyIdList);
- List list = this.list(wrapper1);
- ExecutorService fixedThreadPool = ThreadUtil.newExecutor(10);
- for (PayPackCompanyProject project : list) {
- fixedThreadPool.submit(() -> {
- String projectId = project.getProjectId();
- String projectType = project.getProjectType().toString();
- // 普通项目
- if (PayIncomeContractCommon.PROJECT_TYPE1.equals(projectType)){
- PayCommonProject old = payCommonProjectMapper.selectById(projectId);
- if (old == null) {
- throw new JeroBootException("项目不存在");
- }
- if (!new BigDecimal("0.00").equals(old.getReceivableAmount())) {
- return;
- }
- PayCommonProject payCommonProject = null;
- //普通项目管理-添加
- List jsonObjects = sysBaseAPI.getLogByRequestParam(projectId);
- if (jsonObjects.isEmpty()) {
- return;
- }
- for (JSONObject jsonObject : jsonObjects) {
- String logContent = jsonObject.getString("logContent");
- if ("普通项目管理-添加".equals(logContent)) {
- String requestParam = jsonObject.getString("requestParam");
- requestParam = requestParam.substring(1, requestParam.length() - 1);
- payCommonProject = JSONObject.parseObject(requestParam, PayCommonProject.class);
- }
- }
- if (payCommonProject == null) {
- return;
- }
- PayCommonProject project1 = new PayCommonProject();
- project1.setId(projectId);
- project1.setReceivableAmount(payCommonProject.getReceivableAmount());
- project1.setNoTaxAmount(payCommonProject.getNoTaxAmount());
- project1.setTax(payCommonProject.getTax());
- payCommonProjectMapper.updateById(project1);
- }else if (PayIncomeContractCommon.PROJECT_TYPE2.equals(projectType)){
- // 工作组项目
- //工作组成员-修改 工作组成员-添加
- PayWorkingGroupSubItem old1 = payWorkingGroupSubItemMapper.selectById(projectId);
- if (old1 == null) {
- throw new JeroBootException("项目不存在");
- }
- if (!new BigDecimal("0.00").equals(old1.getReceivableAmount())) {
- return;
- }
- String workingGroupId = old1.getWorkingGroupId();
- PayWorkingGroup payWorkingGroup = payWorkingGroupMapper.selectById(workingGroupId);
- BigDecimal yearChargeA = payWorkingGroup.getYearChargeA();
- if (yearChargeA == null || new BigDecimal("0.00").equals(yearChargeA)) {
- yearChargeA = new BigDecimal("0.00");
- }
- PayWorkingGroupSubItem payWorking = null;
- List jsonObjects1 = sysBaseAPI.getLogByRequestParam(projectId);
- for (JSONObject jsonObject : jsonObjects1) {
- String logContent = jsonObject.getString("logContent");
- if ("工作组成员-添加".equals(logContent) || "工作组成员-修改".equals(logContent) || "企业端-工作组成员-修改".equals(logContent)) {
- String requestParam = jsonObject.getString("requestParam");
- requestParam = requestParam.substring(1, requestParam.length() - 1);
- PayWorkingGroupSubItem obj = JSONObject.parseObject(requestParam, PayWorkingGroupSubItem.class);
- BigDecimal receivableAmount = obj.getReceivableAmount();
- if (new BigDecimal("0.00").equals(receivableAmount) || receivableAmount == null) {
- return;
- } else {
- payWorking = obj;
- }
- }
- }
- if (payWorking == null) {
-
- PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem();
- project2.setId(projectId);
-
- project2.setReceivableAmount(yearChargeA);
- BigDecimal noTaxAmount = yearChargeA.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
- project2.setNoTaxAmount(noTaxAmount);
- project2.setTax(yearChargeA.subtract(noTaxAmount));
- payWorkingGroupSubItemMapper.updateById(project2);
- } else {
- PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem();
- project2.setId(projectId);
- project2.setReceivableAmount(payWorking.getReceivableAmount());
- project2.setNoTaxAmount(payWorking.getNoTaxAmount());
- project2.setTax(payWorking.getTax());
- payWorkingGroupSubItemMapper.updateById(project2);
- }
- }else if (PayIncomeContractCommon.PROJECT_TYPE4.equals(projectType)){
- //会员项目
- PayMemberProjectSubitem old2 = payMemberProjectSubitemMapper.selectById(projectId);
- if (old2 == null) {
- throw new JeroBootException("项目不存在");
- }
- if (!new BigDecimal("0.00").equals(old2.getAmountReceivable())) {
- return;
- }
- String memberProjectId = old2.getProjectId();
- PayMemberProject memberProject = payMemberProjectService.getById(memberProjectId);
- PayMemberProjectSubitem member = new PayMemberProjectSubitem();
- member.setId(projectId);
- member.setAmountReceivable(memberProject.getChargeStandard());
- BigDecimal noTaxAmount = memberProject.getChargeStandard().divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
- member.setNoTaxAmount(noTaxAmount);
- member.setTax(memberProject.getChargeStandard().subtract(noTaxAmount));
- payMemberProjectSubitemMapper.updateById(member);
- }else if (PayIncomeContractCommon.PROJECT_TYPE5.equals(projectType)){
- //标协会员
- TbMemberProjectSubitem old3 = tbMemberProjectSubitemMapper.selectById(projectId);
- if (old3 == null) {
- throw new JeroBootException("项目不存在");
- }
- if (!new BigDecimal("0.00").equals(old3.getAmountReceivable())) {
- return;
- }
- TbMemberProjectSubitem tbMember = new TbMemberProjectSubitem();
- Integer memberNature = old3.getMemberNature();
- BigDecimal amountReceivable = null;
- if (memberNature.equals(1)) {
- amountReceivable = new BigDecimal("5000");
- } else {
- amountReceivable = new BigDecimal("2000");
- }
- tbMember.setId(projectId);
- tbMember.setAmountReceivable(amountReceivable);
- BigDecimal noTaxAmount1 = amountReceivable.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
- tbMember.setNoTaxAmount(noTaxAmount1);
- tbMember.setTax(amountReceivable.subtract(noTaxAmount1));
- tbMemberProjectSubitemMapper.updateById(tbMember);
- }
- });
- }
+ //LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ //wrapper.eq(PayPackCompany::getPackYear,"2024");
+ //List packCompanyList = payPackCompanyService.list(wrapper);
+ //List packCompanyIdList = packCompanyList.stream().map(PayPackCompany::getId).collect(Collectors.toList());
+ //
+ //LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>();
+ //wrapper1.in(PayPackCompanyProject::getPackId,packCompanyIdList);
+ //List list = this.list(wrapper1);
+ //ExecutorService fixedThreadPool = ThreadUtil.newExecutor(10);
+ //for (PayPackCompanyProject project : list) {
+ // fixedThreadPool.submit(() -> {
+ // String projectId = project.getProjectId();
+ // String projectType = project.getProjectType().toString();
+ // // 普通项目
+ // if (PayIncomeContractCommon.PROJECT_TYPE1.equals(projectType)){
+ // PayCommonProject old = payCommonProjectMapper.selectById(projectId);
+ // if (old == null) {
+ // throw new JeroBootException("项目不存在");
+ // }
+ // if (!new BigDecimal("0.00").equals(old.getReceivableAmount())) {
+ // return;
+ // }
+ // PayCommonProject payCommonProject = null;
+ // //普通项目管理-添加
+ // List jsonObjects = sysBaseAPI.getLogByRequestParam(projectId);
+ // if (jsonObjects.isEmpty()) {
+ // return;
+ // }
+ // for (JSONObject jsonObject : jsonObjects) {
+ // String logContent = jsonObject.getString("logContent");
+ // if ("普通项目管理-添加".equals(logContent)) {
+ // String requestParam = jsonObject.getString("requestParam");
+ // requestParam = requestParam.substring(1, requestParam.length() - 1);
+ // payCommonProject = JSONObject.parseObject(requestParam, PayCommonProject.class);
+ // }
+ // }
+ // if (payCommonProject == null) {
+ // return;
+ // }
+ // PayCommonProject project1 = new PayCommonProject();
+ // project1.setId(projectId);
+ // project1.setReceivableAmount(payCommonProject.getReceivableAmount());
+ // project1.setNoTaxAmount(payCommonProject.getNoTaxAmount());
+ // project1.setTax(payCommonProject.getTax());
+ // payCommonProjectMapper.updateById(project1);
+ // }else if (PayIncomeContractCommon.PROJECT_TYPE2.equals(projectType)){
+ // // 工作组项目
+ // //工作组成员-修改 工作组成员-添加
+ // PayWorkingGroupSubItem old1 = payWorkingGroupSubItemMapper.selectById(projectId);
+ // if (old1 == null) {
+ // throw new JeroBootException("项目不存在");
+ // }
+ // if (!new BigDecimal("0.00").equals(old1.getReceivableAmount())) {
+ // return;
+ // }
+ // String workingGroupId = old1.getWorkingGroupId();
+ // PayWorkingGroup payWorkingGroup = payWorkingGroupMapper.selectById(workingGroupId);
+ // BigDecimal yearChargeA = payWorkingGroup.getYearChargeA();
+ // if (yearChargeA == null || new BigDecimal("0.00").equals(yearChargeA)) {
+ // yearChargeA = new BigDecimal("0.00");
+ // }
+ // PayWorkingGroupSubItem payWorking = null;
+ // List jsonObjects1 = sysBaseAPI.getLogByRequestParam(projectId);
+ // for (JSONObject jsonObject : jsonObjects1) {
+ // String logContent = jsonObject.getString("logContent");
+ // if ("工作组成员-添加".equals(logContent) || "工作组成员-修改".equals(logContent) || "企业端-工作组成员-修改".equals(logContent)) {
+ // String requestParam = jsonObject.getString("requestParam");
+ // requestParam = requestParam.substring(1, requestParam.length() - 1);
+ // PayWorkingGroupSubItem obj = JSONObject.parseObject(requestParam, PayWorkingGroupSubItem.class);
+ // BigDecimal receivableAmount = obj.getReceivableAmount();
+ // if (new BigDecimal("0.00").equals(receivableAmount) || receivableAmount == null) {
+ // return;
+ // } else {
+ // payWorking = obj;
+ // }
+ // }
+ // }
+ // if (payWorking == null) {
+ //
+ // PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem();
+ // project2.setId(projectId);
+ //
+ // project2.setReceivableAmount(yearChargeA);
+ // BigDecimal noTaxAmount = yearChargeA.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
+ // project2.setNoTaxAmount(noTaxAmount);
+ // project2.setTax(yearChargeA.subtract(noTaxAmount));
+ // payWorkingGroupSubItemMapper.updateById(project2);
+ // } else {
+ // PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem();
+ // project2.setId(projectId);
+ // project2.setReceivableAmount(payWorking.getReceivableAmount());
+ // project2.setNoTaxAmount(payWorking.getNoTaxAmount());
+ // project2.setTax(payWorking.getTax());
+ // payWorkingGroupSubItemMapper.updateById(project2);
+ // }
+ // }else if (PayIncomeContractCommon.PROJECT_TYPE4.equals(projectType)){
+ // //会员项目
+ // PayMemberProjectSubitem old2 = payMemberProjectSubitemMapper.selectById(projectId);
+ // if (old2 == null) {
+ // throw new JeroBootException("项目不存在");
+ // }
+ // if (!new BigDecimal("0.00").equals(old2.getAmountReceivable())) {
+ // return;
+ // }
+ // String memberProjectId = old2.getProjectId();
+ // PayMemberProject memberProject = payMemberProjectService.getById(memberProjectId);
+ // PayMemberProjectSubitem member = new PayMemberProjectSubitem();
+ // member.setId(projectId);
+ // member.setAmountReceivable(memberProject.getChargeStandard());
+ // BigDecimal noTaxAmount = memberProject.getChargeStandard().divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
+ // member.setNoTaxAmount(noTaxAmount);
+ // member.setTax(memberProject.getChargeStandard().subtract(noTaxAmount));
+ // payMemberProjectSubitemMapper.updateById(member);
+ // }else if (PayIncomeContractCommon.PROJECT_TYPE5.equals(projectType)){
+ // //标协会员
+ // TbMemberProjectSubitem old3 = tbMemberProjectSubitemMapper.selectById(projectId);
+ // if (old3 == null) {
+ // throw new JeroBootException("项目不存在");
+ // }
+ // if (!new BigDecimal("0.00").equals(old3.getAmountReceivable())) {
+ // return;
+ // }
+ // TbMemberProjectSubitem tbMember = new TbMemberProjectSubitem();
+ // Integer memberNature = old3.getMemberNature();
+ // BigDecimal amountReceivable = null;
+ // if (memberNature.equals(1)) {
+ // amountReceivable = new BigDecimal("5000");
+ // } else {
+ // amountReceivable = new BigDecimal("2000");
+ // }
+ // tbMember.setId(projectId);
+ // tbMember.setAmountReceivable(amountReceivable);
+ // BigDecimal noTaxAmount1 = amountReceivable.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
+ // tbMember.setNoTaxAmount(noTaxAmount1);
+ // tbMember.setTax(amountReceivable.subtract(noTaxAmount1));
+ // tbMemberProjectSubitemMapper.updateById(tbMember);
+ // }
+ // });
+ //}
//if (!fixedThreadPool.isShutdown()) {
// fixedThreadPool.shutdown();
//}
@@ -540,5 +577,19 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl wrapper2 = new LambdaQueryWrapper<>();
+ wrapper2.eq(PayMeetingSituation::getPayMode, MeetingSubitemCommon.PAY_MODE_3);
+ List situationList = meetingSituationService.list(wrapper2);
+ for (PayMeetingSituation situation : situationList) {
+ String meetingId = situation.getMeetingId();
+ PayMeeting meeting = meetingService.getById(meetingId);
+ BigDecimal meetingCosts = meeting.getMeetingCosts();
+ PayMeetingSituation project2 = new PayMeetingSituation();
+ project2.setId(situation.getId());
+ project2.setAmountReceivable(meetingCosts);
+ BigDecimal noTaxAmount = meetingCosts.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
+ project2.setNoTaxAmount(noTaxAmount);
+ project2.setTax(meetingCosts.subtract(noTaxAmount));
+ }
}
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyServiceImpl.java
index 9db63569..64a81c7f 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyServiceImpl.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyServiceImpl.java
@@ -4,12 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.enums.PaymentStatusEnum;
import com.jero.common.exception.JeroBootException;
-import com.jero.common.vo.ProjectStatusVO;
-import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
@@ -17,28 +13,25 @@ import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.mapper.PayPackCompanyMapper;
import com.jero.pack.service.IPayPackCompanyService;
-import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.common.PayProjectCommon;
+import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayCommonProject;
-import com.jero.project.entity.PayWorkingGroupSubItem;
+import com.jero.project.service.AnnualDataLockingService;
import com.jero.statistics.entity.AllMoney;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import org.apache.commons.collections.CollectionUtils;
-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.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
-import java.util.stream.Collectors;
/**
* @Description: pay_pack_company
@@ -63,6 +56,8 @@ public class PayPackCompanyServiceImpl extends ServiceImpl queryPageList(Page page, PayPackCompany payPackCompany) {
@@ -72,10 +67,13 @@ public class PayPackCompanyServiceImpl extends ServiceImpl query = new LambdaQueryWrapper<>();
query.eq(PayPackCompany::getCompanyId,payPackCompany.getCompanyId());
- query.eq(PayPackCompany::getPackYear,payPackCompany.getPackYear());
+ query.eq(PayPackCompany::getPackYear, packYear);
PayPackCompany payPackCompanyNew = payPackCompanyService.getOne(query);
if(!Objects.isNull(payPackCompanyNew)){
throw new JeroBootException("该年份下已存在此打包企业!");
@@ -84,7 +82,7 @@ public class PayPackCompanyServiceImpl extends ServiceImpl editReceivableAmount(@Validated @RequestBody EditReceivableAmountParam editReceivableAmountParam) {
+ ValidUtil.validate(editReceivableAmountParam);
+ payPaymentRecordService.editReceivableAmount(editReceivableAmountParam);
+ return Result.OK("编辑成功!");
+ }
+
+ /**
+ * 编辑开票类型
*/
@ApiOperation(value = "编辑开票类型", notes = "编辑开票类型")
@RequiresPermissions("packProject:changeInvoiceInfo")
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentCheckService.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentCheckService.java
index 17889bd2..6e11d349 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentCheckService.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentCheckService.java
@@ -51,7 +51,8 @@ public interface IPayPaymentCheckService extends IService {
* @param amountReceivable 应收
* @param paidAmount 实收
* @param paymentStatus 缴费状态
+ * @param changeReceivableAmountFlag
* @return
*/
- String getPaymentStatus(BigDecimal amountReceivable,BigDecimal paidAmount,String paymentStatus);
+ String getPaymentStatus(BigDecimal amountReceivable, BigDecimal paidAmount, String paymentStatus, boolean changeReceivableAmountFlag);
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentRecordService.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentRecordService.java
index 49c3a59a..ab695b47 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentRecordService.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/IPayPaymentRecordService.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.vo.EditBillTypeParam;
+import com.jero.payment.vo.EditReceivableAmountParam;
import com.jero.payment.vo.TbCheckVo;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.vo.PayCommonProjectOutput;
@@ -109,6 +110,13 @@ public interface IPayPaymentRecordService extends IService {
* @param payPaymentRecord
*/
void editAmountReceived(PayPaymentRecord payPaymentRecord);
+
+ /**
+ * 编辑待确收金额
+ * @param editReceivableAmountParam
+ */
+ void editReceivableAmount(EditReceivableAmountParam editReceivableAmountParam);
+
/**
* 标协会员项目来款推送到标协项目
* @param typr5List
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentCheckServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentCheckServiceImpl.java
index e6c5b4a3..092d640b 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentCheckServiceImpl.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentCheckServiceImpl.java
@@ -16,7 +16,6 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
-import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
@@ -531,7 +530,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl0 && 实收金额 == 待确收金额 && 不等于待审核
+ if(amountReceivable.compareTo(new BigDecimal("0.00")) > 0
+ && paidAmount.compareTo(amountReceivable) == 0
+ && !PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(paymentStatus)){
+ paymentStatus = PaymentStatusEnum.COMPLETED.getCode();//已完结
+ }
+ }else {
+ // 实收金额 < 待确收金额 && 不等于待审核/已拒绝
+ if(paidAmount.compareTo(amountReceivable) < 0
+ //&& !PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(paymentStatus)
+ && !PaymentStatusEnum.REJECTED.getCode().equals(paymentStatus)){
+ paymentStatus = PaymentStatusEnum.TO_BE_UPLOADED.getCode();//待上传
+ }
+ // 应收>0 && 实收金额 == 待确收金额
+ if(amountReceivable.compareTo(new BigDecimal("0.00")) > 0
+ && paidAmount.compareTo(amountReceivable) == 0){
+ paymentStatus = PaymentStatusEnum.COMPLETED.getCode();//已完结
+ }
+ }
- // 实收金额 < 待确收金额 && 不等于待审核/已拒绝
- if(paidAmount.compareTo(amountReceivable) < 0
- && !PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(paymentStatus)
- && !PaymentStatusEnum.REJECTED.getCode().equals(paymentStatus)){
- paymentStatus = PaymentStatusEnum.TO_BE_UPLOADED.getCode();//待上传
- }
- // 应收>0 && 实收金额 == 待确收金额
- if(amountReceivable.compareTo(new BigDecimal("0.00")) > 0
- && paidAmount.compareTo(amountReceivable) == 0){
- paymentStatus = PaymentStatusEnum.COMPLETED.getCode();//已完结
- }
return paymentStatus;
}
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java
index 9cc0107b..a01a05a3 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/service/impl/PayPaymentRecordServiceImpl.java
@@ -18,7 +18,6 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
-import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayCompanyManagement;
@@ -27,6 +26,7 @@ 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.service.IPayMailBillService;
import com.jero.meeting.common.MeetingSubitemCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation;
@@ -50,6 +50,7 @@ import com.jero.payment.mapper.PayPaymentRecordMapper;
import com.jero.payment.service.IPayPaymentCheckService;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.vo.EditBillTypeParam;
+import com.jero.payment.vo.EditReceivableAmountParam;
import com.jero.payment.vo.TbCheckVo;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayCommonProject;
@@ -139,7 +140,10 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl0 && <总金额(半满标志)))
*/
public static Integer AFFIRM_INCOME0 = 0;
+
+ /**
+ * 1 已审核
+ */
+ public static Integer IS_CHECK_PAY_MENT = 1;
+ /**
+ * 0 未审核
+ */
+ public static Integer NOT_CHECK_PAY_MENT = 0;
+ /**
+ * 1 确认凭证
+ */
+ public static Integer IS_CONFIRM_VOUCHER = 1;
+ /**
+ * 0 未确认凭证
+ */
+ public static Integer NOT_CONFIRM_VOUCHER = 0;
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/AnnualDataLockingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/AnnualDataLockingController.java
new file mode 100644
index 00000000..87b702b0
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/AnnualDataLockingController.java
@@ -0,0 +1,120 @@
+package com.jero.project.controller;
+
+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.jero.common.api.vo.IdsMapBody;
+import com.jero.common.api.vo.Result;
+import com.jero.common.aspect.annotation.AutoLog;
+import com.jero.common.exception.JeroBootException;
+import com.jero.common.system.base.controller.JeroController;
+import com.jero.common.system.query.QueryGenerator;
+import com.jero.project.entity.AnnualDataLocking;
+import com.jero.project.service.AnnualDataLockingService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+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_annual_data_locking)表控制层
+ *
+ * @author xxxxx
+ */
+@Slf4j
+@Api(tags = "年度数据锁定表")
+@RestController
+@RequestMapping("sys/annualDataLocking")
+public class AnnualDataLockingController extends JeroController {
+ /**
+ * 服务对象
+ */
+ @Resource
+ private AnnualDataLockingService annualDataLockingService;
+
+ /**
+ * 分页列表查询
+ */
+ @RequiresPermissions("annualDataLockingList:search")
+ @ApiOperation(value = "年度数据锁定表-分页列表查询", notes = "年度数据锁定表-分页列表查询")
+ @GetMapping(value = "/page")
+ public Result> queryPageList(AnnualDataLocking annualDataLocking,
+ @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+ @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(annualDataLocking, req.getParameterMap());
+ Page page = new Page<>(pageNo, pageSize);
+ IPage pageList = annualDataLockingService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 列表查询
+ */
+ @RequiresPermissions("annualDataLockingList:search")
+ @ApiOperation(value = "年度数据锁定表-列表查询", notes = "年度数据锁定表-列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryList(AnnualDataLocking annualDataLocking,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(annualDataLocking, req.getParameterMap());
+ List list = annualDataLockingService.list(queryWrapper);
+ return Result.OK(list);
+ }
+
+ /**
+ * 添加
+ */
+ @RequiresPermissions("annualDataLockingList:add")
+ @AutoLog(value = "年度数据锁定表-添加")
+ @ApiOperation(value = "年度数据锁定表-添加", notes = "年度数据锁定表-添加")
+ @PostMapping(value = "/add")
+ public Result add(@Validated @RequestBody AnnualDataLocking annualDataLocking) {
+ annualDataLockingService.add(annualDataLocking);
+ return Result.OK(Result.ADD_SUCCESS);
+ }
+
+ /**
+ * 通过id删除
+ */
+ @RequiresPermissions("annualDataLockingList:delete")
+ @AutoLog(value = "年度数据锁定表-通过id删除")
+ @ApiOperation(value = "年度数据锁定表-通过id删除", notes = "年度数据锁定表-通过id删除")
+ @PostMapping(value = "/delete")
+ public Result delete(@RequestBody IdsMapBody map) {
+ String id = map.getId();
+ if (StringUtils.isBlank(id)) {
+ return Result.error(Result.NULL_ID);
+ }
+ annualDataLockingService.deleteById(id);
+ return Result.OK(Result.DELETE_SUCCESS);
+ }
+
+ /**
+ * 批量删除
+ */
+ @RequiresPermissions("annualDataLockingList:batchDel")
+ @AutoLog(value = "年度数据锁定表-批量删除")
+ @ApiOperation(value = "年度数据锁定表-批量删除", notes = "年度数据锁定表-批量删除")
+ @PostMapping(value = "/deleteBatch")
+ public Result deleteBatch(@RequestBody IdsMapBody map) {
+ String ids = map.getIds();
+ if (StringUtils.isBlank(ids)) {
+ return Result.error(Result.NULL_ID);
+ }
+ List idList = Arrays.asList(map.getIds().split(","));
+ this.annualDataLockingService.deleteByIds(idList);
+ return Result.OK(Result.DELETE_SUCCESS);
+ }
+
+
+}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java
index 9bda0d6f..3c3dbec0 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java
@@ -71,6 +71,9 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.YearMonth;
+import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -154,6 +157,17 @@ public class PayCommonProjectController extends JeroController add(@RequestBody PayCommonProject payCommonProject) {
- if (Objects.isNull(payCommonProject.getEstimatedArrivalDate())) {
+ if (StringUtils.isBlank(payCommonProject.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空");
}
+ // 给预估到账日期字段 yyyy-MM 拼接 -01 以便正确入库
+ payCommonProject.setEstimatedArrivalDate(payCommonProject.getEstimatedArrivalDate() + "-01");
StringBuilder msg = ValidUtil.validateAll(payCommonProject);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -417,6 +439,8 @@ public class PayCommonProjectController extends JeroController add(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) {
+ if (!StringUtils.isBlank(payWorkingGroupSubItem.getEstimatedArrivalDate())) {
+ payWorkingGroupSubItem.setEstimatedArrivalDate(payWorkingGroupSubItem.getEstimatedArrivalDate() + "-01");
+ }
// 找到工作组 看是否收费,如果不收费则填入默认字段
payWorkingGroupService.validAndSetDefaultValue(payWorkingGroupSubItem);
StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem);
@@ -432,10 +460,30 @@ public class PayWorkingGroupSubItemController extends JeroController errInfoList = new ArrayList<>();
for (String workingGroupId : workingGroupIdsArr) {
- payWorkingGroupSubItem.setId(null);
+ PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(workingGroupId);
+ BigDecimal yearChargeA = payWorkingGroup.getYearChargeA();
+ BigDecimal taxRate = new BigDecimal("0.06");
+ payWorkingGroupSubItem.setTaxRate(taxRate);
+ if (Objects.isNull(yearChargeA)) {
+ payWorkingGroupSubItem.setReceivableAmount(BigDecimal.ZERO);
+ payWorkingGroupSubItem.setTax(BigDecimal.ZERO);
+ payWorkingGroupSubItem.setNoTaxAmount(BigDecimal.ZERO);
+ } else {
+ payWorkingGroupSubItem.setReceivableAmount(yearChargeA);
+ // 计算未税金额
+ BigDecimal noTaxAmount = yearChargeA.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
+ // 计算税额
+ BigDecimal tax = yearChargeA.subtract(noTaxAmount).setScale(2, RoundingMode.HALF_UP);
+ payWorkingGroupSubItem.setTax(tax);
+ payWorkingGroupSubItem.setNoTaxAmount(noTaxAmount);
+ }
+ payWorkingGroupSubItem.setId(null);
List payWorkingGroupSubItemContactsList =
payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList();
payWorkingGroupSubItemContactsList.forEach(p -> p.setId(null));
@@ -472,6 +520,9 @@ public class PayWorkingGroupSubItemController extends JeroController edit(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) {
+ if (!StringUtils.isBlank(payWorkingGroupSubItem.getEstimatedArrivalDate())) {
+ payWorkingGroupSubItem.setEstimatedArrivalDate(payWorkingGroupSubItem.getEstimatedArrivalDate() + "-01");
+ }
StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem);
if (!StringUtils.isBlank(msg)) {
return Result.error(msg.toString());
@@ -716,6 +767,17 @@ public class PayWorkingGroupSubItemController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(payWorkingGroupSubItem, request.getParameterMap());
@@ -746,6 +808,11 @@ public class PayWorkingGroupSubItemController extends JeroController listPayWorkingGroupSubItemContacts = payWorkingGroupSubItemContactsList.stream().filter(o->Objects.equals(workingGroupSubItem.getId(),o.getWorkingGroupSubId())).collect(Collectors.toList());
@@ -901,4 +968,18 @@ public class PayWorkingGroupSubItemController extends JeroController confirmVoucher(@RequestParam(name = "id") String id) {
+ payWorkingGroupSubItemService.confirmVoucher(id);
+ return Result.OK("确认凭证成功!");
+ }
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/AnnualDataLocking.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/AnnualDataLocking.java
new file mode 100644
index 00000000..eacfc389
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/AnnualDataLocking.java
@@ -0,0 +1,62 @@
+package com.jero.project.entity;
+
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ *年度数据锁定表
+ *@author liJiaRao
+ *@date 2024-07-24 13:51
+ */
+@ApiModel(description="年度数据锁定表")
+@Data
+@TableName(value = "pay_annual_data_locking")
+public class AnnualDataLocking {
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ @ApiModelProperty(value="主键")
+ private String id;
+
+ /**
+ * 年份
+ */
+ @TableField(value = "`year`")
+ @ApiModelProperty(value="年份")
+ private String year;
+
+ /**
+ * 创建人
+ */
+ @TableField(value = "create_by")
+ @ApiModelProperty(value="创建人")
+ private String createBy;
+
+ /**
+ * 创建时间
+ */
+ @TableField(value = "create_time")
+ @ApiModelProperty(value="创建时间")
+ private Date createTime;
+
+ /**
+ * 更新人
+ */
+ @TableField(value = "update_by")
+ @ApiModelProperty(value="更新人")
+ private String updateBy;
+
+ /**
+ * 更新时间
+ */
+ @TableField(value = "update_time")
+ @ApiModelProperty(value="更新时间")
+ private Date updateTime;
+}
\ No newline at end of file
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java
index 54fb30cf..895a6af6 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java
@@ -378,4 +378,8 @@ public class PayCommonProject implements Serializable {
@ApiModelProperty(value = "权益状态")
@TableField(exist = false)
private String equityStatus;
+
+ @ApiModelProperty(value = "自定义排序顺序")
+ @TableField(exist = false)
+ private BigDecimal sortNo;
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkGroupSubletStatistics.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkGroupSubletStatistics.java
index 9cafbeb9..fe9e4c21 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkGroupSubletStatistics.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkGroupSubletStatistics.java
@@ -20,10 +20,14 @@ public class PayWorkGroupSubletStatistics {
@ApiModelProperty(value = "来款单位")
private String chargeCompanyTemporaryName;
+ @Excel(name = "项目负责人", width = 15)
+ @ApiModelProperty(value = "项目负责人")
+ private String principalName;
+
@ApiModelProperty(value = "打包")
private Integer pack;
- @Excel(name = "打包", width = 15)
+ @Excel(name = "是否打包", width = 15)
private String packText;
@Excel(name = "年度待确收金额", width = 15)
@@ -54,8 +58,5 @@ public class PayWorkGroupSubletStatistics {
- @Excel(name = "项目负责人", width = 15)
- @ApiModelProperty(value = "项目负责人")
- private String principalName;
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroup.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroup.java
index 5e89afbf..a3dcdec3 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroup.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroup.java
@@ -160,4 +160,7 @@ public class PayWorkingGroup implements Serializable {
@TableField(exist = false)
@ApiModelProperty(value = "企业名称")
private String companyName;
+
+ @ApiModelProperty(value = "自定义排序顺序")
+ private BigDecimal sortNo;
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupSubItem.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupSubItem.java
index 0ff6e969..d54c5cb7 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupSubItem.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupSubItem.java
@@ -130,7 +130,7 @@ public class PayWorkingGroupSubItem implements Serializable {
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预估到账日期")
- @Excel(name = "预估到账日期",width = 15,format = "yyyy-MM-dd")
+ @Excel(name = "预估到账日期",width = 15,format = "yyyy-MM")
private String estimatedArrivalDate;
/**实收金额(元)*/
@@ -614,4 +614,10 @@ public class PayWorkingGroupSubItem implements Serializable {
@ApiModelProperty(value = "工作组ids 多个以逗号分隔")
@TableField(exist = false)
private String workingGroupIds;
+
+ @ApiModelProperty(value = "是否审核(1:是,0:否")
+ private Integer checkPaymentStatus;
+
+ @ApiModelProperty(value = "是否确认凭证(1:是,0:否")
+ private Integer confirmVoucher;
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupSubletSearch.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupSubletSearch.java
index c1e46e68..80eacc5c 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupSubletSearch.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupSubletSearch.java
@@ -52,4 +52,10 @@ public class PayWorkingGroupSubletSearch {
@ApiModelProperty(value = "是否打包")
private String pack;
+
+ @ApiModelProperty(value = "字段")
+ private String column;
+
+ @ApiModelProperty(value = "排序规则")
+ private String order;
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/AnnualDataLockingMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/AnnualDataLockingMapper.java
new file mode 100644
index 00000000..bbf03d88
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/AnnualDataLockingMapper.java
@@ -0,0 +1,21 @@
+package com.jero.project.mapper;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jero.project.entity.AnnualDataLocking;
+
+import java.time.Year;
+
+/**
+ *
+ *@author liJiaRao
+ *@date 2024-07-24 13:51
+ */
+public interface AnnualDataLockingMapper extends BaseMapper {
+ AnnualDataLocking countByYear(@Param("year")String year);
+
+ List getYear();
+
+
+}
\ No newline at end of file
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayCommonProjectMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayCommonProjectMapper.java
index d757e234..8b672386 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayCommonProjectMapper.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayCommonProjectMapper.java
@@ -1,4 +1,7 @@
package com.jero.project.mapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -13,14 +16,14 @@ import java.util.List;
/**
* @Description: pay_common_project
* @Author: jeecg-boot
- * @Date: 2021-08-27
+ * @Date: 2021-08-27
* @Version: V1.0
*/
public interface PayCommonProjectMapper extends BaseMapper {
/**
* @Description 分页查询
- * @Author lqt
- * @Date 2021/8/27
+ * @Author lqt
+ * @Date 2021/8/27
* @Param paymentDate 来款年份
* @Return
* @Exception
@@ -31,16 +34,22 @@ public interface PayCommonProjectMapper extends BaseMapper {
/**
* @Description 收入合同-列表
- * @Author lqt
- * @Date 2021/10/18
- * @Param queryWrapper
+ * @Author lqt
+ * @Date 2021/10/18
+ * @Param queryWrapper
* @Param projectType 项目类型
* @Param pack 打包状态
* @Param packYear 打包年份
* @Return
* @Exception
*/
- List queryListByCompany(@Param(Constants.WRAPPER) QueryWrapper queryWrapper,@Param("projectType") String projectType,@Param("pack") Integer pack,@Param("packYear") String packYear);
+ List queryListByCompany(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, @Param("projectType") String projectType, @Param("pack") Integer pack, @Param("packYear") String packYear);
+
+ default List listByYear(String year) {
+ LambdaQueryWrapper myQuery = Wrappers.lambdaQuery(PayCommonProject.class);
+ myQuery.eq(PayCommonProject::getYear, year);
+ return selectList(myQuery);
+ }
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupMapper.java
index 02722ec3..80ec6de9 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupMapper.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupMapper.java
@@ -275,4 +275,8 @@ public interface PayWorkingGroupMapper extends BaseMapper {
List overallDepartmentStatistics(@Param("year") String year, @Param("type") String type);
List allDepartmentStatistics(@Param("year") String year, @Param("type") String type);
+
+ List queryPageListForCompanyClassification(@Param("companyComeMoneySearch") CompanyComeMoneySearch companyComeMoneySearch);
+
+ List queryPageListExcelForProject(@Param("allProjectStatisticsSearch") AllProjectStatisticsSearch allProjectStatisticsSearch, @Param("idList") List idList);
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupSubItemContactsMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupSubItemContactsMapper.java
index c08ad170..a2910dc2 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupSubItemContactsMapper.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupSubItemContactsMapper.java
@@ -1,5 +1,14 @@
package com.jero.project.mapper;
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+
import org.apache.ibatis.annotations.Param;
+
import java.util.List;
@@ -9,16 +18,25 @@ import com.jero.project.entity.PayWorkingGroupSubItemContacts;
/**
* @Description: pay_working_group_subitem_contacts
* @Author: jeecg-boot
- * @Date: 2022-04-19
+ * @Date: 2022-04-19
* @Version: V1.0
*/
public interface PayWorkingGroupSubItemContactsMapper extends BaseMapper {
/**
* 根据成员id获得主联系人
*/
- String getMasterContactsId(@Param("workingGroupSubId")String workingGroupSubId);
+ String getMasterContactsId(@Param("workingGroupSubId") String workingGroupSubId);
- List getSubItemContacts(@Param("workingGroupSubId")String workingGroupSubId);
+ List getSubItemContacts(@Param("workingGroupSubId") String workingGroupSubId);
+
+ default List listByWorkingGroupSubIdIn(Collection workingGroupSubIdCollection) {
+ if (CollectionUtil.isEmpty(workingGroupSubIdCollection)){
+ return new ArrayList<>();
+ }
+ LambdaQueryWrapper myQuery = Wrappers.lambdaQuery(PayWorkingGroupSubItemContacts.class);
+ myQuery.in(PayWorkingGroupSubItemContacts::getWorkingGroupSubId, workingGroupSubIdCollection);
+ return selectList(myQuery);
+ }
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupSubItemMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupSubItemMapper.java
index 1bada09c..b9addf05 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupSubItemMapper.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupSubItemMapper.java
@@ -64,4 +64,6 @@ public interface PayWorkingGroupSubItemMapper extends BaseMapper publishReminderList(Page page, @Param("payWorkingGroupSubItem") PayWorkingGroupSubItem payWorkingGroupSubItem);
List queryList(@Param(Constants.WRAPPER) QueryWrapper queryPayWorkingGroupSubItem);
+
+ List listByYear(@Param("year") String year);
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/AnnualDataLockingMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/AnnualDataLockingMapper.xml
new file mode 100644
index 00000000..f903e833
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/AnnualDataLockingMapper.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, `year`, create_by, create_time, update_by, update_time
+
+
+
+
+ select *
+ from pay_annual_data_locking
+
+
+ and `year`=#{year,jdbcType=VARCHAR}
+
+
+
+
+
+
+ select `year`
+ from pay_annual_data_locking
+
+
\ No newline at end of file
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml
index 65ffed1a..3891b0dc 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml
@@ -11,16 +11,15 @@
su.realname as principal_name,
pcp.charge_company_id,
pcp.charge_company_temporary_id,
-# 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,
IF(
- pcp.charge_company_temporary_name =
- IF(
- pcp.charge_company_temporary_name LIKE '%(未审核)',
- CONCAT(pcm.company_name, '(未审核)'),
- pcm.company_name
- ),
- pcp.charge_company_temporary_name,
- CONCAT(pcp.charge_company_temporary_name, '(更名为', pcm.company_name, ')')
+ pcp.charge_company_temporary_name =
+ IF(
+ pcp.charge_company_temporary_name LIKE '%(未审核)',
+ CONCAT(pcm.company_name, '(未审核)'),
+ pcm.company_name
+ ),
+ pcp.charge_company_temporary_name,
+ CONCAT(pcp.charge_company_temporary_name, '(更名为', pcm.company_name, ')')
) AS chargeCompanyTemporaryName,
pcp.charge_use,
pcp.contacts_id,
@@ -57,8 +56,7 @@
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
+ left join pay_company_management pcm on pcp.charge_company_id = pcm.id
AND pcp.charge_project like concat('%',concat(#{payCommonProject.chargeProject},'%'))
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml
index ac2942a4..f67e622b 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml
@@ -24,7 +24,8 @@
pwg.create_time AS createTime,
pwg.update_by AS updateBy,
pwg.update_time AS updateTime,
- pwg.pay_flag AS payFlag
+ pwg.pay_flag AS payFlag,
+ pwg.sort_no AS sortNo
FROM pay_working_group pwg
left join sys_user su on pwg.principal_id_a = su.id
left join sys_user su1 on pwg.principal_id_b = su.id
@@ -61,7 +62,10 @@
and pwgs.charge_company_temporary_name like concat('%', #{payWorkingGroup.companyName}, '%')
- ORDER BY pwg.create_time DESC
+ ORDER BY
+ CASE WHEN pwg.sort_no IS NULL THEN 1 ELSE 0 END ASC,
+ pwg.sort_no ASC,
+ pwg.create_time DESC
SELECT
@@ -1438,6 +1442,9 @@
AND payStatue = #{principalPeopleDetailSearch.inAccountStatue}
+
+ AND pack = #{principalPeopleDetailSearch.pack}
+
AND allMoney >= #{principalPeopleDetailSearch.allMoney}
@@ -1453,14 +1460,6 @@
-
@@ -1538,6 +1537,9 @@
AND payStatue = #{principalPeopleDetailSearch.inAccountStatue}
+
+ AND pack = #{principalPeopleDetailSearch.pack}
+
AND allMoney >= #{principalPeopleDetailSearch.allMoney}
@@ -2036,7 +2038,9 @@
AND chargeUse=#{CompanyComeMoneyDetailSearch.chargeUse}
-
+
+ AND pack =#{CompanyComeMoneyDetailSearch.pack}
+
AND allMoney >= #{CompanyComeMoneyDetailSearch.allMoney} and allMoney =
@@ -2051,14 +2055,6 @@
-
) p
@@ -2150,6 +2146,10 @@
AND chargeUse = #{CompanyComeMoneyDetailSearch.chargeUse}
+
+ AND pack =#{CompanyComeMoneyDetailSearch.pack}
+
+
AND allMoney >= #{CompanyComeMoneyDetailSearch.allMoney}
@@ -2165,14 +2165,6 @@
-
) pp
@@ -2350,7 +2342,7 @@
order by bill_date
-
+
select
sum(no_tax_amount) as comeAllMoney,
@@ -2670,26 +2662,172 @@
- select DATE_FORMAT(paymentDate, '%Y-%m') as paymentDate,sum(estimatedArrivalMoney) as estimatedArrivalMoney from (
- select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
- from pay_common_project
- where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
- and pack = 0
- union all
- select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
- from pay_working_group_subitem
- where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
- and pack = 0
- union all
- select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
- from pay_meeting_situation
- where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
- and pack = 0
- union all
- select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
- from pay_member_project_subitem
- where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
- and pack = 0
- ) dataAll group by DATE_FORMAT(paymentDate, '%Y-%m') order by paymentDate
+ select DATE_FORMAT(estimatedArrivalDate, '%Y-%m') as paymentDate,
+ sum(allMoney) as estimatedArrivalMoney
+ from v_statistical_pack
+ where DATE_FORMAT(estimatedArrivalDate, '%Y') = #{paymentYear}
+ group by DATE_FORMAT(estimatedArrivalDate, '%Y-%m') order by paymentDate
+
+
+
+ select chargeCompanyId as companyId,
+ chargeCompanyTemporaryName as companyName,
+ year,
+ chargeUse,
+ SUM(allMoney) as allMoney
+ from
+ v_statistical v
+
+
+
+ #{item}
+
+
+
+
+ #{item}
+
+
+
+ group by chargeCompanyId,year,chargeUse
+
+
+
+ select * from
+ (select projectId,
+ projectName,
+ principalName,
+ chargeCompanyTemporaryName,
+ allMoney,
+ paidNoTaxAmount as comeAllMoney,
+ chargeUse,
+ depart,
+ createTime,
+ packText,
+ pack,
+ invoiceNoTaxAmount as billMoney,
+ confirmNoTaxAmount as confirmAmount,
+ year
+ from
+
+ v_statistical v
+
+
+ (select
+
+ from v_statistical_confirm v
+
+
+
+ and confirmDate like
+ concat('%',#{allProjectStatisticsSearch.paymentYear},'-',#{allProjectStatisticsSearch.paymentMonth},'%')
+
+
+ and confirmDate like concat('%',#{allProjectStatisticsSearch.paymentYear},'%')
+
+
+
+ group by projectId
+ ) v
+
+
+
+ principalNameId in
+
+ #{item}
+
+
+
+ AND projectName LIKE
+ concat('%', #{allProjectStatisticsSearch.projectName}, '%')
+
+
+ AND year LIKE
+ concat(#{allProjectStatisticsSearch.year}, '%')
+
+
+ AND payStatue LIKE
+ concat('%', #{allProjectStatisticsSearch.payStatue}, '%')
+
+
+ AND departCode = #{allProjectStatisticsSearch.departCode}
+
+
+ AND chargeUse = #{allProjectStatisticsSearch.chargeUse}
+
+
+ AND chargeCompanyTemporaryName LIKE
+ concat('%', #{allProjectStatisticsSearch.chargeCompanyTemporaryName}, '%')
+
+
+ AND principalNameId = #{allProjectStatisticsSearch.principalNameId}
+
+
+ AND pack = #{allProjectStatisticsSearch.pack}
+
+
+ AND estimatedArrivalDate is null
+
+
+ AND estimatedArrivalDate is not null
+
+
+
+ and estimatedArrivalDate like
+ concat('%',#{allProjectStatisticsSearch.estimatedArrivalYear},'-',#{allProjectStatisticsSearch.estimatedArrivalMonth},'%')
+
+
+ and estimatedArrivalDate like concat('%',#{allProjectStatisticsSearch.estimatedArrivalYear},'%')
+
+
+
+
+ AND allMoney >= #{allProjectStatisticsSearch.allMoney}
+ and allMoney =
+ #{allProjectStatisticsSearch.allMoneyTwo}
+
+
+
+ AND allMoney >= #{allProjectStatisticsSearch.allMoney}
+
+
+ AND allMoney = #{allProjectStatisticsSearch.allMoneyTwo}
+
+
+
+
+ and contactsName like concat('%', #{allProjectStatisticsSearch.companyContactName}, '%')
+
+
+ group by v.projectId) p
+
+
+ order by allMoney desc
+
+
+ order by comeAllMoney desc
+
+
+ order by billMoney desc
+
+
+ order by confirmAmount desc
+
+
+ order by confirmAmount
+
+
+ order by allMoney
+
+
+ order by comeAllMoney
+
+
+ order by billMoney
+
+
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml
index 9c3fd69a..f4beaba3 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml
@@ -8,8 +8,6 @@
pwgs.working_group_id AS workingGroupId,
pwgs.charge_company_id AS chargeCompanyId,
pwgs.charge_company_temporary_id AS chargeCompanyTemporaryId,
-
-# 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,
ifnull( IF(
pwgs.charge_company_temporary_name =
IF(
@@ -57,11 +55,12 @@
pwgs.tax_rate,
pwgs.no_tax_amount,
pwgs.label,
- pwgs.estimated_arrival_date
+ pwgs.estimated_arrival_date,
+ pwgs.check_payment_status,
+ pwgs.confirm_voucher
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
+ left join pay_company_management pcm on pwgs.charge_company_id = pcm.id
pwgs.working_group_id = #{payWorkingGroupSubItem.workingGroupId}
@@ -92,6 +91,12 @@
and pwgs.id = #{payWorkingGroupSubItem.id}
+
+ and pwgs.confirm_voucher = #{payWorkingGroupSubItem.confirmVoucher}
+
+
+ and pwgs.check_payment_status = #{payWorkingGroupSubItem.checkPaymentStatus}
+
GROUP BY pwgs.id
ORDER BY pwgs.create_time desc
@@ -127,7 +132,8 @@
- SELECT
+ select * from
+ (SELECT
principalNameId as principalId,
principalName,
chargeCompanyTemporaryName,
@@ -197,17 +203,37 @@
-
AND pack = #{payWorkingGroupSubletSearch.pack}
- group by id
+ group by id) p
+
+
+ order by allMoney desc
+
+
+ order by comeAllMoney desc
+
+
+ order by billMoney desc
+
+
+ order by confirmAmount desc
+
+
+ order by confirmAmount
+
+
+ order by allMoney
+
+
+ order by comeAllMoney
+
+
+ order by billMoney
+
+
@@ -281,12 +307,6 @@
AND pack = #{payWorkingGroupSubletSearch.pack}
-
group by id) p
@@ -381,4 +401,10 @@
left join pay_working_group pwg ON pwgs.working_group_id = pwg.id
${ew.customSqlSegment}
+
+
+ select pwgs.* from pay_working_group_subitem pwgs
+ left join pay_working_group pwg ON pwgs.working_group_id = pwg.id
+ where pwg.year = #{year}
+
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/AnnualDataLockingService.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/AnnualDataLockingService.java
new file mode 100644
index 00000000..de3eed62
--- /dev/null
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/AnnualDataLockingService.java
@@ -0,0 +1,574 @@
+package com.jero.project.service;
+
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DateUtil;
+import com.jero.common.common.RoleCommon;
+import com.jero.common.exception.JeroBootException;
+import com.jero.common.service.ProjectDetailService;
+import com.jero.common.system.api.ISysBaseAPI;
+import com.jero.common.system.vo.LoginUser;
+import com.jero.meeting.entity.PayMeetingSituation;
+import com.jero.meeting.mapper.PayMeetingMapper;
+import com.jero.meeting.mapper.PayMeetingSituationMapper;
+import com.jero.meeting.service.IPayMeetingSituationService;
+import com.jero.member.entity.PayMemberProjectSubitem;
+import com.jero.member.entity.TbMemberProjectSubitem;
+import com.jero.member.mapper.PayMemberProjectSubitemMapper;
+import com.jero.member.mapper.TbMemberProjectSubitemMapper;
+import com.jero.member.service.IPayMemberProjectService;
+import com.jero.member.service.IPayMemberProjectSubitemService;
+import com.jero.member.service.ITbMemberProjectSubitemService;
+import com.jero.modules.system.service.ISysUserService;
+import com.jero.pack.entity.PayPackCompany;
+import com.jero.pack.mapper.PayPackCompanyMapper;
+import com.jero.pack.service.IPayPackCompanyProjectService;
+import com.jero.pack.service.IPayPackCompanyService;
+import com.jero.project.entity.PayCommonProject;
+import com.jero.project.entity.PayWorkingGroupSubItem;
+import com.jero.project.entity.PayWorkingGroupSubItemContacts;
+import com.jero.project.mapper.*;
+import com.jero.temporary.entity.PayCompanyManagementTemporary;
+import com.jero.temporary.entity.PayContactsManagementTemporary;
+import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
+import com.jero.temporary.service.IPayContactsManagementTemporaryService;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.jetbrains.annotations.NotNull;
+import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.CompletableFuture;
+import java.util.stream.Collectors;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jero.project.entity.AnnualDataLocking;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+/**
+ *
+ *@author liJiaRao
+ *@date 2024-07-24 13:51
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class AnnualDataLockingService extends ServiceImpl {
+ @Resource
+ private ISysUserService sysUserService;
+ @Resource
+ private ProjectDetailService projectDetailService;
+ @Resource
+ private PayCommonProjectMapper payCommonProjectMapper;
+ @Resource
+ private IPayWorkingGroupSubItemService workingGroupSubItemService;
+ @Resource
+ private IPayWorkingGroupSubItemContactsService workingGroupSubItemContactsService;
+ @Resource
+ private PayWorkingGroupMapper payWorkingGroupMapper;
+ @Resource
+ private PayWorkingGroupSubItemMapper payWorkingGroupSubItemMapper;
+ @Resource
+ private PayWorkingGroupSubItemContactsMapper workingGroupSubItemContactsMapper;
+
+ @Resource
+ private PayMeetingSituationMapper meetingSituationMapper;
+ @Resource
+ private PayMemberProjectSubitemMapper payMemberProjectSubitemMapper;
+ @Resource
+ private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
+ @Resource
+ private ISysBaseAPI sysBaseAPI;
+ @Resource
+ private IPayCommonProjectService commonProjectService;
+ @Resource
+ private IPayMemberProjectService payMemberProjectService;
+ @Resource
+ private IPayMemberProjectSubitemService memberProjectSubitemService;
+ @Resource
+ private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
+ @Resource
+ private PayMeetingMapper meetingMapper;
+ @Resource
+ private IPayMeetingSituationService meetingSituationService;
+ @Resource
+ private IPayPackCompanyService packCompanyService;
+ @Resource
+ private PayPackCompanyMapper packCompanyMapper;
+ @Resource
+ private IPayCompanyManagementTemporaryService companyTemporaryService;
+ @Resource
+ private IPayContactsManagementTemporaryService contactsTemporaryService;
+
+ public void add(AnnualDataLocking annualDataLocking) {
+ String year = annualDataLocking.getYear();
+ if (String.valueOf(DateUtil.thisYear()).equals(year)){
+ throw new JeroBootException("不能锁定当前年份");
+ }
+ AnnualDataLocking one = lambdaQuery().eq(AnnualDataLocking::getYear, year).one();
+ if (one != null){
+ throw new JeroBootException(year+"年年度数据已经锁定");
+ }
+ this.save(annualDataLocking);
+ CompletableFuture.supplyAsync(() -> {
+ //第一步先获取所有企业和联系人
+ List meetingSituations = meetingSituationMapper.listByYear(year);
+ List workingGroupSubItems = payWorkingGroupSubItemMapper.listByYear(year);
+ List workingGroupSubIdList = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getId).distinct().collect(Collectors.toList());
+ List workingGroupSubItemContacts = workingGroupSubItemContactsMapper.listByWorkingGroupSubIdIn(workingGroupSubIdList);
+ List payCommonProjects = payCommonProjectMapper.listByYear(year);
+ List memberProjectSubitems = payMemberProjectSubitemMapper.listByYear(year);
+ List tbMemberProjectSubitems = tbMemberProjectSubitemMapper.listByYear(year);
+ List packCompanyList = packCompanyMapper.listByYear(year);
+ //获得去重后的所有企业和联系人(联系人和邮寄联系人)
+ ArrayList distinctCompanyIdList = getDistinctCompanyIdList(meetingSituations, workingGroupSubItems, payCommonProjects, memberProjectSubitems, tbMemberProjectSubitems,packCompanyList);
+ ArrayList distinctContactIdList = getDistinctContactIdList(meetingSituations, workingGroupSubItems, workingGroupSubItemContacts, payCommonProjects, memberProjectSubitems, tbMemberProjectSubitems,packCompanyList);
+ //如果企业或联系人为空那么直接返回
+ if (CollectionUtil.isEmpty(distinctCompanyIdList)||CollectionUtil.isEmpty(distinctContactIdList)){
+ return "";
+ }
+ //生成企业和联系人临时数据
+ List companyTemporaryList = companyTemporaryService.insertList(distinctCompanyIdList,year);
+ Map companyTemporaryMap = CollStreamUtil.toIdentityMap(companyTemporaryList, PayCompanyManagementTemporary::getCompanyId);
+ List contactsTemporaryList = contactsTemporaryService.insertList(distinctContactIdList,year);
+ Map contactsTemporaryMap = CollStreamUtil.toIdentityMap(contactsTemporaryList, PayContactsManagementTemporary::getContactId);
+
+ //会议项目
+ List updateMeetingSituationList = new ArrayList<>();
+ for (PayMeetingSituation meetingSituation : meetingSituations) {
+ String companyId = meetingSituation.getCompanyId();
+ String companyContactId = meetingSituation.getCompanyContactId();
+ String postContactId = meetingSituation.getPostContactId();
+ //获得临时表id
+ companyTemporaryMap.get(companyId);
+ PayCompanyManagementTemporary companyTemporary = companyTemporaryMap.get(companyId);
+ if (companyTemporary == null){
+ continue;
+ }
+ PayContactsManagementTemporary contactsTemporary = contactsTemporaryMap.get(companyContactId);
+ if (contactsTemporary == null){
+ continue;
+ }
+ //更新临时表id
+ PayMeetingSituation update = new PayMeetingSituation();
+ update.setId(meetingSituation.getId());
+ if (StringUtils.isNotBlank(postContactId)){
+ PayContactsManagementTemporary contactsTemporary1 = contactsTemporaryMap.get(postContactId);
+ if (contactsTemporary1 != null){
+ update.setPostContactTemporaryId(contactsTemporary1.getId());
+ }
+ }
+ update.setCompanyTemporaryId(companyTemporary.getId());
+ update.setCompanyContactTemporaryId(contactsTemporary.getId());
+ updateMeetingSituationList.add(update);
+ }
+ meetingSituationService.updateBatchById(updateMeetingSituationList);
+
+ //工作组项目
+ List updateWorkingGroupSubItemList = new ArrayList<>();
+ for (PayWorkingGroupSubItem workingGroupSubItem : workingGroupSubItems) {
+ String companyId = workingGroupSubItem.getChargeCompanyId();
+ String postContactId = workingGroupSubItem.getMailContactsId();
+ //获得临时表id
+ companyTemporaryMap.get(companyId);
+ PayCompanyManagementTemporary companyTemporary = companyTemporaryMap.get(companyId);
+ if (companyTemporary == null){
+ continue;
+ }
+ //更新临时表id
+ PayWorkingGroupSubItem update = new PayWorkingGroupSubItem();
+ update.setId(workingGroupSubItem.getId());
+ update.setChargeCompanyTemporaryId(companyTemporary.getId());
+ if (StringUtils.isNotBlank(postContactId)){
+ PayContactsManagementTemporary contactsTemporary1 = contactsTemporaryMap.get(postContactId);
+ if (contactsTemporary1 != null){
+ update.setMailContactsTemporaryId(contactsTemporary1.getId());
+ }
+ }
+
+ updateWorkingGroupSubItemList.add(update);
+ }
+ workingGroupSubItemService.updateBatchById(updateWorkingGroupSubItemList);
+
+ //工作组成员联系人
+ List updateWorkingGroupSubItemContacts = new ArrayList<>();
+ for (PayWorkingGroupSubItemContacts contacts : workingGroupSubItemContacts) {
+ String contactsId = contacts.getContactsId();
+
+ PayContactsManagementTemporary contactsTemporary = contactsTemporaryMap.get(contactsId);
+ if (contactsTemporary == null){
+ continue;
+ }
+ //更新临时表id
+ PayWorkingGroupSubItemContacts update = new PayWorkingGroupSubItemContacts();
+ update.setId(contacts.getId());
+ update.setContactsTemporaryId(contactsTemporary.getId());
+ updateWorkingGroupSubItemContacts.add(update);
+ }
+ workingGroupSubItemContactsService.updateBatchById(updateWorkingGroupSubItemContacts);
+
+ //普通项目
+ List updatePayCommonProjects = new ArrayList<>();
+ for (PayCommonProject commonProject : payCommonProjects) {
+ String companyId = commonProject.getChargeCompanyId();
+ String companyContactId = commonProject.getContactsId();
+ String postContactId = commonProject.getMailContactsId();
+ //获得临时表id
+ companyTemporaryMap.get(companyId);
+ PayCompanyManagementTemporary companyTemporary = companyTemporaryMap.get(companyId);
+ if (companyTemporary == null){
+ continue;
+ }
+ PayContactsManagementTemporary contactsTemporary = contactsTemporaryMap.get(companyContactId);
+ if (contactsTemporary == null){
+ continue;
+ }
+ //更新临时表id
+ PayCommonProject update = new PayCommonProject();
+ update.setId(commonProject.getId());
+ if (StringUtils.isNotBlank(postContactId)){
+ PayContactsManagementTemporary contactsTemporary1 = contactsTemporaryMap.get(postContactId);
+ if (contactsTemporary1 != null){
+ update.setMailContactsId(contactsTemporary1.getId());
+ }
+ }
+ update.setChargeCompanyTemporaryId(companyTemporary.getId());
+ update.setContactsTemporaryId(contactsTemporary.getId());
+ updatePayCommonProjects.add(update);
+ }
+ commonProjectService.updateBatchById(updatePayCommonProjects);
+
+ //会员项目
+ List updateMemberProjectSubitems = new ArrayList<>();
+ for (PayMemberProjectSubitem memberProjectSubitem : memberProjectSubitems) {
+ String companyId = memberProjectSubitem.getCompanyId();
+ String companyContactId = memberProjectSubitem.getCompanyContactId();
+ String postContactId = memberProjectSubitem.getPostContactId();
+ //获得临时表id
+ companyTemporaryMap.get(companyId);
+ PayCompanyManagementTemporary companyTemporary = companyTemporaryMap.get(companyId);
+ if (companyTemporary == null){
+ continue;
+ }
+ PayContactsManagementTemporary contactsTemporary = contactsTemporaryMap.get(companyContactId);
+ if (contactsTemporary == null){
+ continue;
+ }
+ //更新临时表id
+ PayMemberProjectSubitem update = new PayMemberProjectSubitem();
+ update.setId(memberProjectSubitem.getId());
+ if (StringUtils.isNotBlank(postContactId)){
+ PayContactsManagementTemporary contactsTemporary1 = contactsTemporaryMap.get(postContactId);
+ if (contactsTemporary1 != null){
+ update.setPostContactTemporaryId(contactsTemporary1.getId());
+ }
+ }
+ update.setCompanyTemporaryId(companyTemporary.getId());
+ update.setCompanyContactTemporaryId(contactsTemporary.getId());
+ updateMemberProjectSubitems.add(update);
+ }
+ memberProjectSubitemService.updateBatchById(updateMemberProjectSubitems);
+
+ //标协会员项目
+ List updateTbMemberProjectSubitems = new ArrayList<>();
+ for (TbMemberProjectSubitem tbMemberProjectSubitem : tbMemberProjectSubitems) {
+ String companyId = tbMemberProjectSubitem.getCompanyId();
+ String companyContactId = tbMemberProjectSubitem.getLiaisonManId();
+ String postContactId = tbMemberProjectSubitem.getPostContactId();
+ //获得临时表id
+ companyTemporaryMap.get(companyId);
+ PayCompanyManagementTemporary companyTemporary = companyTemporaryMap.get(companyId);
+ if (companyTemporary == null){
+ continue;
+ }
+ PayContactsManagementTemporary contactsTemporary = contactsTemporaryMap.get(companyContactId);
+ if (contactsTemporary == null){
+ continue;
+ }
+ //更新临时表id
+ TbMemberProjectSubitem update = new TbMemberProjectSubitem();
+ update.setId(tbMemberProjectSubitem.getId());
+ if (StringUtils.isNotBlank(postContactId)){
+ PayContactsManagementTemporary contactsTemporary1 = contactsTemporaryMap.get(postContactId);
+ if (contactsTemporary1 != null){
+ update.setPostContactTemporaryId(contactsTemporary1.getId());
+ }
+ }
+ update.setCompanyTemporaryId(companyTemporary.getId());
+ update.setCompanyContactTemporaryId(contactsTemporary.getId());
+ updateTbMemberProjectSubitems.add(update);
+ }
+ tbMemberProjectSubitemService.updateBatchById(updateTbMemberProjectSubitems);
+
+ //打包项目
+ List updatePackCompanyList = new ArrayList<>();
+ for (PayPackCompany packCompany : packCompanyList) {
+ String companyId = packCompany.getCompanyId();
+ String companyContactId = packCompany.getCompanyContactId();
+ String postContactId = packCompany.getMailContactsId();
+ //获得临时表id
+ companyTemporaryMap.get(companyId);
+ PayCompanyManagementTemporary companyTemporary = companyTemporaryMap.get(companyId);
+ if (companyTemporary == null){
+ continue;
+ }
+ PayContactsManagementTemporary contactsTemporary = contactsTemporaryMap.get(companyContactId);
+ if (contactsTemporary == null){
+ continue;
+ }
+ //更新临时表id
+ PayPackCompany update = new PayPackCompany();
+ update.setId(packCompany.getId());
+ if (StringUtils.isNotBlank(postContactId)){
+ PayContactsManagementTemporary contactsTemporary1 = contactsTemporaryMap.get(postContactId);
+ if (contactsTemporary1 != null){
+ update.setMailContactsId(contactsTemporary1.getId());
+ }
+ }
+ update.setCompanyTemporaryId(companyTemporary.getId());
+ update.setCompanyContactTemporaryId(contactsTemporary.getId());
+ updatePackCompanyList.add(update);
+ }
+ packCompanyService.updateBatchById(updatePackCompanyList);
+ return "";
+ });
+
+ }
+
+ @NotNull
+ private ArrayList getDistinctContactIdList(List meetingSituations, List workingGroupSubItems, List workingGroupSubItemContacts, List payCommonProjects, List memberProjectSubitems, List tbMemberProjectSubitems, List packCompanys) {
+ //获得所有联系人id
+ List contactIdList1 = meetingSituations.stream().map(PayMeetingSituation::getCompanyContactId).distinct().collect(Collectors.toList());
+ List contactIdList2 = workingGroupSubItemContacts.stream().map(PayWorkingGroupSubItemContacts::getContactsId).distinct().collect(Collectors.toList());
+ List contactIdList3 = payCommonProjects.stream().map(PayCommonProject::getContactsId).distinct().collect(Collectors.toList());
+ List contactIdList4 = memberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyContactId).distinct().collect(Collectors.toList());
+ List contactIdList5 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getLiaisonManId).distinct().collect(Collectors.toList());
+ List contactIdList6 = packCompanys.stream().map(PayPackCompany::getCompanyContactId).distinct().collect(Collectors.toList());
+ contactIdList1.addAll(contactIdList2);
+ contactIdList1.addAll(contactIdList3);
+ contactIdList1.addAll(contactIdList4);
+ contactIdList1.addAll(contactIdList5);
+ contactIdList1.addAll(contactIdList6);
+ //获得所有邮寄联系人id
+ List postContactIdList1 = meetingSituations.stream().map(PayMeetingSituation::getPostContactId).distinct().collect(Collectors.toList());
+ List postContactIdList2 = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getMailContactsId).distinct().collect(Collectors.toList());
+ List postContactIdList3 = payCommonProjects.stream().map(PayCommonProject::getMailContactsId).distinct().collect(Collectors.toList());
+ List postContactIdList4 = memberProjectSubitems.stream().map(PayMemberProjectSubitem::getPostContactId).distinct().collect(Collectors.toList());
+ List postContactIdList5 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getPostContactId).distinct().collect(Collectors.toList());
+ List postContactIdList6 = packCompanys.stream().map(PayPackCompany::getMailContactsId).distinct().collect(Collectors.toList());
+ contactIdList1.addAll(postContactIdList1);
+ contactIdList1.addAll(postContactIdList2);
+ contactIdList1.addAll(postContactIdList3);
+ contactIdList1.addAll(postContactIdList4);
+ contactIdList1.addAll(postContactIdList5);
+ contactIdList1.addAll(postContactIdList6);
+ //联系人和邮寄联系人合并后去重
+ return CollectionUtil.distinct(contactIdList1);
+ }
+
+ @NotNull
+ private ArrayList getDistinctCompanyIdList(List meetingSituations, List workingGroupSubItems, List payCommonProjects, List memberProjectSubitems, List tbMemberProjectSubitems, List packCompanys) {
+ //获取所有企业id
+ List companyIdList1 = meetingSituations.stream().map(PayMeetingSituation::getCompanyId).distinct().collect(Collectors.toList());
+ List companyIdList2 = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getChargeCompanyId).distinct().collect(Collectors.toList());
+ List companyIdList3 = payCommonProjects.stream().map(PayCommonProject::getChargeCompanyId).distinct().collect(Collectors.toList());
+ List companyIdList4 = memberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyId).distinct().collect(Collectors.toList());
+ List companyIdList5 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getCompanyId).distinct().collect(Collectors.toList());
+ List companyIdList6 = packCompanys.stream().map(PayPackCompany::getCompanyId).distinct().collect(Collectors.toList());
+
+ companyIdList1.addAll(companyIdList2);
+ companyIdList1.addAll(companyIdList3);
+ companyIdList1.addAll(companyIdList4);
+ companyIdList1.addAll(companyIdList5);
+ companyIdList1.addAll(companyIdList6);
+ //去重
+ return CollectionUtil.distinct(companyIdList1);
+ }
+
+ /**
+ * 查询所有锁定年份
+ * @return
+ */
+ public List getAllYear(){
+ return baseMapper.getYear();
+ }
+
+ /**
+ * 查询年份是否存在
+ */
+ @Cacheable(cacheNames= "annualDataLocking", key="#year")
+ public AnnualDataLocking checkYear(String year){
+ return baseMapper.countByYear(year);
+ }
+
+ /**
+ * 判断用户是否能操作所选年份数据,返回年份是否是锁定的
+ * @param year
+ */
+ public AnnualDataLocking judgeUserYear(String year){
+ AnnualDataLocking b = checkYear(year);
+ LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ if (user == null){
+ return b;
+ }
+ //如果是项目负责人,就抛出异常
+ if (Objects.equals(user.getRoleCode(),RoleCommon.XMFZR) && b != null){
+ throw new JeroBootException(year+"年数据已经锁定");
+ }
+ return b;
+ }
+
+ public void editById(AnnualDataLocking annualDataLocking) {
+
+ this.updateById(annualDataLocking);
+ }
+
+ @CacheEvict(value="annualDataLocking", allEntries=true)
+ public void deleteById(String id) {
+ AnnualDataLocking annualDataLocking = this.getById(id);
+ this.removeById(id);
+ String year = annualDataLocking.getYear();
+ CompletableFuture.supplyAsync(() -> {
+ //会议项目
+ List updateMeetingSituationList = new ArrayList<>();
+ List meetingSituations = meetingSituationMapper.listByYear(year);
+ for (PayMeetingSituation meetingSituation : meetingSituations) {
+ String companyId = meetingSituation.getCompanyId();
+ String companyContactId = meetingSituation.getCompanyContactId();
+ String postContactId = meetingSituation.getPostContactId();
+ //更新临时表id
+ PayMeetingSituation update = new PayMeetingSituation();
+ update.setId(meetingSituation.getId());
+ update.setCompanyTemporaryId(companyId);
+ update.setCompanyContactTemporaryId(companyContactId);
+ update.setPostContactTemporaryId(postContactId);
+ updateMeetingSituationList.add(update);
+ }
+ meetingSituationService.updateBatchById(updateMeetingSituationList);
+
+ //工作组项目
+ List updateWorkingGroupSubItemList = new ArrayList<>();
+ List workingGroupSubItems = payWorkingGroupSubItemMapper.listByYear(year);
+ for (PayWorkingGroupSubItem workingGroupSubItem : workingGroupSubItems) {
+ String companyId = workingGroupSubItem.getChargeCompanyId();
+ String postContactId = workingGroupSubItem.getMailContactsId();
+ //更新临时表id
+ PayWorkingGroupSubItem update = new PayWorkingGroupSubItem();
+ update.setId(workingGroupSubItem.getId());
+ update.setChargeCompanyTemporaryId(companyId);
+ update.setMailContactsTemporaryId(postContactId);
+
+ updateWorkingGroupSubItemList.add(update);
+ }
+ workingGroupSubItemService.updateBatchById(updateWorkingGroupSubItemList);
+
+ //工作组成员联系人
+ List updateWorkingGroupSubItemContacts = new ArrayList<>();
+ List workingGroupSubIdList = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getId).distinct().collect(Collectors.toList());
+ List workingGroupSubItemContacts = workingGroupSubItemContactsMapper.listByWorkingGroupSubIdIn(workingGroupSubIdList);
+ for (PayWorkingGroupSubItemContacts contacts : workingGroupSubItemContacts) {
+ String contactsId = contacts.getContactsId();
+
+ //更新临时表id
+ PayWorkingGroupSubItemContacts update = new PayWorkingGroupSubItemContacts();
+ update.setId(contacts.getId());
+ update.setContactsTemporaryId(contactsId);
+ updateWorkingGroupSubItemContacts.add(update);
+ }
+ workingGroupSubItemContactsService.updateBatchById(updateWorkingGroupSubItemContacts);
+
+ //普通项目
+ List updatePayCommonProjects = new ArrayList<>();
+ List payCommonProjects = payCommonProjectMapper.listByYear(year);
+ for (PayCommonProject commonProject : payCommonProjects) {
+ String companyId = commonProject.getChargeCompanyId();
+ String companyContactId = commonProject.getContactsId();
+ String postContactId = commonProject.getMailContactsId();
+
+ //更新临时表id
+ PayCommonProject update = new PayCommonProject();
+ update.setId(commonProject.getId());
+ update.setChargeCompanyTemporaryId(companyId);
+ update.setContactsTemporaryId(companyContactId);
+ update.setMailContactsTemporaryId(postContactId);
+
+ updatePayCommonProjects.add(update);
+ }
+ commonProjectService.updateBatchById(updatePayCommonProjects);
+
+ //会员项目
+ List updateMemberProjectSubitems = new ArrayList<>();
+ List memberProjectSubitems = payMemberProjectSubitemMapper.listByYear(year);
+ for (PayMemberProjectSubitem memberProjectSubitem : memberProjectSubitems) {
+ String companyId = memberProjectSubitem.getCompanyId();
+ String companyContactId = memberProjectSubitem.getCompanyContactId();
+ String postContactId = memberProjectSubitem.getPostContactId();
+
+ //更新临时表id
+ PayMemberProjectSubitem update = new PayMemberProjectSubitem();
+ update.setId(memberProjectSubitem.getId());
+ update.setCompanyTemporaryId(companyId);
+ update.setCompanyContactTemporaryId(companyContactId);
+ update.setPostContactTemporaryId(postContactId);
+
+ updateMemberProjectSubitems.add(update);
+ }
+ memberProjectSubitemService.updateBatchById(updateMemberProjectSubitems);
+
+ //标协会员项目
+ List updateTbMemberProjectSubitems = new ArrayList<>();
+ List tbMemberProjectSubitems = tbMemberProjectSubitemMapper.listByYear(year);
+ for (TbMemberProjectSubitem tbMemberProjectSubitem : tbMemberProjectSubitems) {
+ String companyId = tbMemberProjectSubitem.getCompanyId();
+ String companyContactId = tbMemberProjectSubitem.getLiaisonManId();
+ String postContactId = tbMemberProjectSubitem.getPostContactId();
+ //更新临时表id
+ TbMemberProjectSubitem update = new TbMemberProjectSubitem();
+ update.setId(tbMemberProjectSubitem.getId());
+ update.setCompanyTemporaryId(companyId);
+ update.setCompanyContactTemporaryId(companyContactId);
+ update.setPostContactTemporaryId(postContactId);
+
+ updateTbMemberProjectSubitems.add(update);
+ }
+ tbMemberProjectSubitemService.updateBatchById(updateTbMemberProjectSubitems);
+
+ //打包项目
+ List updatePackCompanyList = new ArrayList<>();
+ List packCompanyList = packCompanyMapper.listByYear(year);
+ for (PayPackCompany packCompany : packCompanyList) {
+ String companyId = packCompany.getCompanyId();
+ String companyContactId = packCompany.getCompanyContactId();
+ String postContactId = packCompany.getMailContactsId();
+
+ //更新临时表id
+ PayPackCompany update = new PayPackCompany();
+ update.setId(packCompany.getId());
+ update.setMailContactsId(postContactId);
+ update.setCompanyTemporaryId(companyId);
+ update.setCompanyContactTemporaryId(companyContactId);
+ updatePackCompanyList.add(update);
+ }
+ packCompanyService.updateBatchById(updatePackCompanyList);
+ return "";
+ });
+
+ }
+
+ public void deleteByIds(List idList) {
+ for (String id : idList) {
+ deleteById(id);
+ }
+ }
+
+ public AnnualDataLocking queryById(String id) {
+ AnnualDataLocking annualDataLocking = this.getById(id);
+ return annualDataLocking;
+ }
+}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayWorkingGroupService.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayWorkingGroupService.java
index 1fc95f51..872ff7bc 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayWorkingGroupService.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayWorkingGroupService.java
@@ -9,7 +9,8 @@ import com.jero.project.vo.PayWorkingGroupVO;
import com.jero.project.entity.PayWorkingGroup;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.statistics.entity.*;
-
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -259,4 +260,15 @@ public interface IPayWorkingGroupService extends IService {
* @param payWorkingGroupSubItem 工作组成员
*/
void validAndSetDefaultValue(PayWorkingGroupSubItem payWorkingGroupSubItem);
+
+ /**
+ * 全部文件导出
+ * @param request
+ * @param response
+ */
+ void exportAllFile(HttpServletRequest request, HttpServletResponse response, PayWorkingGroup payWorkingGroup);
+
+ List queryPageListForCompanyClassification(CompanyComeMoneySearch companyComeMoneySearch);
+
+ List queryPageListExcelForProject(AllProjectStatisticsSearch allProjectStatisticsSearch, List idList);
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayWorkingGroupSubItemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayWorkingGroupSubItemService.java
index 8b67317f..13869c55 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayWorkingGroupSubItemService.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayWorkingGroupSubItemService.java
@@ -145,4 +145,10 @@ public interface IPayWorkingGroupSubItemService extends IService");
}
+
+ String year = payCommonProject.getYear();
+ //判断用户是否能操作所选年份数据
+ AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
if(!StringUtils.isEmpty(sb)){
return sb;
}
@@ -353,8 +371,8 @@ public class PayCommonProjectServiceImpl extends ServiceImpl queryPageList(Page page, PayWorkingGroup payWorkingGroup) {
@@ -116,7 +131,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl query = new LambdaQueryWrapper<>();
query.eq(PayWorkingGroupSubItem::getWorkingGroupId,id);
List listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query);
@@ -154,6 +171,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl");
}
+ String year = payWorkingGroupOld.getYear();
+ //判断用户是否能操作所选年份数据
+ AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
LambdaQueryWrapper query = new LambdaQueryWrapper<>();
query.eq(PayWorkingGroupSubItem::getWorkingGroupId, p);
List listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query);
@@ -232,6 +252,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl idList) {
return payWorkingGroupMapper.queryPageListProjectTotal(allProjectStatisticsSearch, idList);
}
+ /**
+ * 科室统计excel
+ */
+ @Override
+ public List queryPageListExcelForProject(AllProjectStatisticsSearch allProjectStatisticsSearch, List idList) {
+ return payWorkingGroupMapper.queryPageListExcelForProject(allProjectStatisticsSearch, idList);
+ }
@Override
public AllMoney queryPageListForCompany33(CompanyComeMoneySearch companyComeMoneySearch,List idList) {
@@ -692,23 +720,37 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl listEstimatedArrivalMoney = payWorkingGroupMapper.cumulativeListEstimatedArrivalMoney(allProjectStatisticsSearch.getPaymentYear());
List list2=getAllProjectMoneyStatistics(allProjectStatisticsSearch,allMoneyList,listConfirmAmount, listBillMoney,listComeAllMoney,listEstimatedArrivalMoney);
- AllMoney allMoney=payWorkingGroupMapper.queryPageList33(allProjectStatisticsSearch, idList);
+ //AllMoney allMoney=payWorkingGroupMapper.queryPageList33(allProjectStatisticsSearch, idList);
List comeAllMoneyList=list2.stream().map(AllProjectStatistics::getComeAllMoney).collect(Collectors.toList());
List billMoneyList=list2.stream().map(AllProjectStatistics::getBillMoney).collect(Collectors.toList());
List confirmMoneyList=list2.stream().map(AllProjectStatistics::getConfirmAmount).collect(Collectors.toList());
- List allMoneyList1=list2.stream().map(AllProjectStatistics::getComeAllMoney).collect(Collectors.toList());
+ List allMoneyList1=list2.stream().map(AllProjectStatistics::getEstimatedArrivalMoney).collect(Collectors.toList());
List> list3 = new ArrayList<>();
list3.add(0,allMoneyList1);
list3.add(1,confirmMoneyList);
list3.add(2,billMoneyList);
list3.add(3,comeAllMoneyList);
+ BigDecimal allMoney = BigDecimal.ZERO;
+ BigDecimal comeAllMoney = BigDecimal.ZERO;
+ BigDecimal billMoney = BigDecimal.ZERO;
+ BigDecimal confirmAmount = BigDecimal.ZERO;
+ for (AllProjectStatistics item : list2) {
+ BigDecimal allMoney1 = new BigDecimal(item.getEstimatedArrivalMoney());
+ allMoney = allMoney.add(allMoney1);
+ BigDecimal comeAllMoney1 = new BigDecimal(item.getComeAllMoney());
+ comeAllMoney = comeAllMoney.add(comeAllMoney1);
+ BigDecimal billMoney1 = new BigDecimal(item.getBillMoney());
+ billMoney = billMoney.add(billMoney1);
+ BigDecimal confirmAmount1 = new BigDecimal(item.getConfirmAmount());
+ confirmAmount = confirmAmount.add(confirmAmount1);
+ };
- AllProjectMoneyExcel comeAllProjectMoney=new AllProjectMoneyExcel("到账金额",allMoney.getComeAllMoney());
- AllProjectMoneyExcel billAllProjectMoney=new AllProjectMoneyExcel("开票金额",allMoney.getBillMoney());
- AllProjectMoneyExcel confirmAllProjectMoney=new AllProjectMoneyExcel("确认收入金额",allMoney.getConfirmAmount());
- AllProjectMoneyExcel allProjectMoney=new AllProjectMoneyExcel("年度待确收金额",allMoney.getAllMoney());
+ AllProjectMoneyExcel comeAllProjectMoney=new AllProjectMoneyExcel("到账金额",comeAllMoney.toString());
+ AllProjectMoneyExcel billAllProjectMoney=new AllProjectMoneyExcel("开票金额",billMoney.toString());
+ AllProjectMoneyExcel confirmAllProjectMoney=new AllProjectMoneyExcel("确认收入金额",confirmAmount.toString());
+ AllProjectMoneyExcel allProjectMoney=new AllProjectMoneyExcel("预估收入金额",allMoney.toString());
List excelList = new ArrayList<>();
excelList.add(0,allProjectMoney);
excelList.add(1,confirmAllProjectMoney);
@@ -748,6 +790,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl roleCodes = new ArrayList<>(Arrays.asList(sysUser.getRoleCode().split(",")));
+ if (!roleCodes.contains(constant.ADMIN) && !roleCodes.contains(constant.CWRY)) {
+ payWorkingGroup.setPrincipalA(sysUser.getId());
+ payWorkingGroup.setPrincipalB(sysUser.getId());
+ }
+ } else {
+ throw new JeroBootException("登录用户角色为空!");
+ }
+
+ Page page = new Page<>(-1, -1);
+ String workingGroupProject = payWorkingGroup.getWorkingGroupProject();
+ if (StringUtils.isNotBlank(workingGroupProject)) {
+ payWorkingGroup.setWorkingGroupProject(oConvertUtils.replaceAllPercent(workingGroupProject));
+ }
+
+ List pageList = payWorkingGroupService.queryPageList(page, payWorkingGroup).getRecords();
+ String selections = request.getParameter("selections");
+ List ids = pageList.stream().map(PayWorkingGroupVO::getId).collect(Collectors.toList());
+
+ if (oConvertUtils.isNotEmpty(selections)) {
+ List selectionList = Arrays.asList(selections.split(","));
+ ids.retainAll(selectionList);
+ }
+
+ if (oConvertUtils.isEmpty(ids)) {
+ throw new JeroBootException("没有工作组文件可以导出!");
+ }
+
+ Set addedEntries = new HashSet<>();
+
+ try (ZipOutputStream zipos = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream()))) {
+ response.reset();
+ response.setCharacterEncoding("utf-8");
+ response.setContentType("application/zip");
+
+ String downloadName = UUID.randomUUID().toString() + ".zip";
+ String agent = request.getHeader("USER-AGENT");
+ if (agent != null) {
+ if (agent.contains("MSIE") || agent.contains("Trident")) {
+ downloadName = java.net.URLEncoder.encode(downloadName, "UTF-8");
+ } else {
+ downloadName = new String(downloadName.getBytes("UTF-8"), "ISO-8859-1");
+ }
+ }
+ response.setHeader("Content-Disposition", "attachment;fileName=\"" + downloadName + "\"");
+
+ for (String projectId : ids) {
+ PayWorkingGroupDataFile payWorkingGroupDataFile = new PayWorkingGroupDataFile();
+ payWorkingGroupDataFile.setProjectId(projectId);
+ payWorkingGroupDataFile.setProjectType(PayProjectCommon.PROJECT_TYPE_FILE1);
+ List fileList = payWorkingGroupDataFileService.queryListExport(payWorkingGroupDataFile);
+ PayWorkingGroup payWorkingGroupDB = payWorkingGroupService.getById(projectId);
+ if (payWorkingGroupDB == null) {
+ throw new JeroBootException("工作组不存在!");
+ }
+
+ String groupName = payWorkingGroupDB.getWorkingGroupProject();
+ String groupFolderPath = "工作组资料/" + groupName + "/";
+ String researchProjectFolderPath = groupFolderPath + "在研项目/";
+ String otherFilesFolderPath = groupFolderPath + "其他分发资料/";
+ String chargeNoticeFolderPath = groupFolderPath + "收费通知/";
+
+ createEntry(zipos, groupFolderPath, addedEntries);
+ createEntry(zipos, researchProjectFolderPath, addedEntries);
+ createEntry(zipos, otherFilesFolderPath, addedEntries);
+ createEntry(zipos, chargeNoticeFolderPath, addedEntries);
+
+ addFileToZip(payWorkingGroupDB.getChargeNoticeAId(), zipos, chargeNoticeFolderPath, addedEntries);
+ addFileToZip(payWorkingGroupDB.getChargeNoticeBId(), zipos, chargeNoticeFolderPath, addedEntries);
+
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(PayResearchProject::getWorkingGroupId, projectId);
+ List payResearchProjectList = payResearchProjectService.list(queryWrapper);
+ for (PayResearchProject payResearchProject : payResearchProjectList) {
+ String projectName = payResearchProject.getProjectName();
+ String projectFolderPath = researchProjectFolderPath + projectName + "/";
+
+ createEntry(zipos, projectFolderPath, addedEntries);
+
+ List researchProjectFileIds = new ArrayList<>();
+ if (!StringUtils.isEmpty(payResearchProject.getFiles())) {
+ researchProjectFileIds.addAll(Arrays.asList(payResearchProject.getFiles().split(",")));
+ }
+
+ for (String fileId : researchProjectFileIds) {
+ addFileToZip(fileId.trim(), zipos, projectFolderPath, addedEntries);
+ }
+ }
+
+ for (PayWorkingGroupDataFile dataFile : fileList) {
+ addFileToZip(dataFile.getFileId(), zipos, otherFilesFolderPath, addedEntries);
+ }
+ }
+
+ for (String projectId : ids) {
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(PayMeeting::getWorkingGroupId, projectId);
+ lambdaQueryWrapper.eq(PayMeeting::getMeetingType, MeetingCommon.WORKING_GROUP_MEETING_INT);
+ List list = payMeetingService.list(lambdaQueryWrapper);
+ for (PayMeeting payMeeting : list) {
+ String meetingName = payMeeting.getMeetingName();
+ String meetingFolderPath = "会议资料/" + meetingName + "/";
+ String meetingMinutesFolderPath = meetingFolderPath + "会议纪要/";
+ String meetingDataFolderPath = meetingFolderPath + "上传文件/";
+ String meetingNoticeFilesPath = meetingFolderPath + "会议通知/";
+
+ createEntry(zipos, meetingFolderPath, addedEntries);
+ createEntry(zipos, meetingMinutesFolderPath, addedEntries);
+ createEntry(zipos, meetingDataFolderPath, addedEntries);
+ createEntry(zipos, meetingNoticeFilesPath, addedEntries);
+
+ List fileIds = new ArrayList<>();
+ if (!StringUtils.isEmpty(payMeeting.getMeetingMinute())) {
+ fileIds.addAll(Arrays.asList(payMeeting.getMeetingMinute().split(",")));
+ }
+ if (!StringUtils.isEmpty(payMeeting.getMeetingData())) {
+ fileIds.addAll(Arrays.asList(payMeeting.getMeetingData().split(",")));
+ }
+ if (!StringUtils.isEmpty(payMeeting.getMeetingFiles())) {
+ fileIds.addAll(Arrays.asList(payMeeting.getMeetingFiles().split(",")));
+ }
+
+ for (String fileId : fileIds) {
+ OSSFile ossFile = iossFileService.getById(fileId.trim());
+ if (ossFile == null) {
+ continue;
+ }
+ File file = new File(upLoadPath + File.separator + ossFile.getUrl());
+ if (!file.exists()) {
+ continue;
+ }
+
+ String entryPath;
+ if (payMeeting.getMeetingMinute() != null && Arrays.asList(payMeeting.getMeetingMinute().split(",")).contains(fileId)) {
+ entryPath = meetingMinutesFolderPath + ossFile.getFileName();
+ } else if (payMeeting.getMeetingData() != null && Arrays.asList(payMeeting.getMeetingData().split(",")).contains(fileId)){
+ entryPath = meetingDataFolderPath + ossFile.getFileName();
+ } else {
+ entryPath = meetingNoticeFilesPath + ossFile.getFileName();
+ }
+
+ if (addedEntries.contains(entryPath)) {
+ continue;
+ }
+
+ zipos.putNextEntry(new ZipEntry(entryPath));
+ try (InputStream is = new FileInputStream(file)) {
+ byte[] b = new byte[1024];
+ int length;
+ while ((length = is.read(b)) != -1) {
+ zipos.write(b, 0, length);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ zipos.closeEntry();
+ addedEntries.add(entryPath);
+ }
+ }
+ }
+ zipos.flush();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public List queryPageListForCompanyClassification(CompanyComeMoneySearch companyComeMoneySearch) {
+ return payWorkingGroupMapper.queryPageListForCompanyClassification(companyComeMoneySearch);
+ }
+
+ private void createEntry(ZipOutputStream zipos, String folderPath, Set addedEntries) throws IOException {
+ if (!addedEntries.contains(folderPath)) {
+ zipos.putNextEntry(new ZipEntry(folderPath));
+ zipos.closeEntry();
+ addedEntries.add(folderPath);
+ }
+ }
+
+ private void addFileToZip(String fileId, ZipOutputStream zipos, String folderPath, Set addedEntries) throws IOException {
+ OSSFile ossFile = iossFileService.getById(fileId);
+ if (ossFile == null) {
+ return;
+ }
+ File file = new File(upLoadPath + File.separator + ossFile.getUrl());
+ if (!file.exists()) {
+ return;
+ }
+ String entryPath = folderPath + ossFile.getFileName();
+ if (addedEntries.contains(entryPath)) {
+ return;
+ }
+
+ zipos.putNextEntry(new ZipEntry(entryPath));
+ try (InputStream is = new FileInputStream(file)) {
+ byte[] b = new byte[1024];
+ int length;
+ while ((length = is.read(b)) != -1) {
+ zipos.write(b, 0, length);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ zipos.closeEntry();
+ addedEntries.add(entryPath);
+ }
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupSubItemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupSubItemServiceImpl.java
index 40b4268a..7b4de1c6 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupSubItemServiceImpl.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupSubItemServiceImpl.java
@@ -33,7 +33,6 @@ import com.jero.contract.service.IPayIncomeContractService;
import com.jero.mail.service.IPayMailBillService;
import com.jero.meeting.entity.PayMeetingRemindRecord;
import com.jero.meeting.service.IPayMeetingRemindRecordService;
-import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.entity.SysUser;
@@ -45,10 +44,7 @@ import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.*;
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.project.service.*;
import com.jero.project.vo.SetChargeInput;
import com.jero.project.vo.SetLabelVO;
import com.jero.statistics.entity.AllMoney;
@@ -137,6 +133,8 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl pwg = payWorkingGroupSubItemContactsList.stream().filter(p -> Objects.equals(p.getWorkingGroupSubId(), workingGroupSubItem.getId())).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(pwg)) {
pwg.sort(Comparator.comparing(PayWorkingGroupSubItemContacts::getOrderNum));
+ workingGroupSubItem.setContactsIdOne(pwg.get(0).getContactsId());
+ workingGroupSubItem.setContactsTemporaryIdOne(pwg.get(0).getContactsTemporaryId());
workingGroupSubItem.setContactsTemporaryNameOne(pwg.get(0).getContactsTemporaryName());
workingGroupSubItem.setPayWorkingGroupSubItemContactsList(pwg);
} else {
@@ -216,7 +216,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>();
@@ -234,13 +236,15 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl 0) {
payWorkingGroupSubItem.setPaymentStatus(PayProjectCommon.PAYMENT_STATUS);
}
- setPayWorkingGroupSubItemAdd(payWorkingGroupSubItem);
+ setPayWorkingGroupSubItemAdd(payWorkingGroupSubItem, annualDataLocking);
payWorkingGroupSubItem.setPack(PayProjectCommon.PACKAGING0);
payWorkingGroupSubItem.setInAccount(PayProjectCommon.IN_ACCOUNT0);
payWorkingGroupSubItem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
payWorkingGroupSubItem.setMail(PayProjectCommon.MAIL0);
payWorkingGroupSubItem.setChargeUse(PayProjectCommon.CHARGE_USE1);
payWorkingGroupSubItem.setAffirmIncome(PayProjectCommon.AFFIRM_INCOME0);
+ payWorkingGroupSubItem.setCheckPaymentStatus(PayProjectCommon.NOT_CHECK_PAY_MENT);
+ payWorkingGroupSubItem.setConfirmVoucher(PayProjectCommon.NOT_CONFIRM_VOUCHER);
payWorkingGroupSubItemService.save(payWorkingGroupSubItem);
List listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList();
// 添加联系人表
@@ -336,6 +340,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList();
// 添加联系人表
if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContactsNew)) {
@@ -439,17 +446,19 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId, workingGroupSubItemId);
@@ -587,7 +596,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList();
// 添加联系人表
if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContactsNew)) {
@@ -612,7 +623,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl fileMap = multipartRequest.getFileMap();
for (Map.Entry entity : fileMap.entrySet()) {
@@ -763,11 +783,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl");
} else {
try {
- LocalDate.parse(estimatedArrivalDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ p.setEstimatedArrivalDate(estimatedArrivalDate + "-01");
+ LocalDate.parse(estimatedArrivalDate + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
} catch (Exception e) {
msg.append("第").append(list.indexOf(p) + 3).append("行预估到账日期格式不正确,请修改。
");
}
@@ -893,8 +910,11 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl {
@@ -1157,7 +1177,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl subItemContacts = payWorkingGroupSubItemContactsMapper.getSubItemContacts(id);
List temporaryIds = subItemContacts.stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
- payContactsManagementTemporaryService.removeByIds(temporaryIds);
+ // paycontactsManagementTemporaryService.removeByIds(temporaryIds);
}
/**
@@ -1397,9 +1420,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl list = payWorkingGroupSubItemOld.getPayWorkingGroupSubItemContactsList().stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
- payContactsManagementTemporaryService.removeByIds(list);
+ // paycontactsManagementTemporaryService.removeByIds(list);
}
// 删除联系人记录
LambdaUpdateWrapper updatePayWorkingGroupSubItemContacts = new LambdaUpdateWrapper<>();
@@ -1462,7 +1485,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.eq(PayWorkingGroupSubItem::getId, id);
+ updateWrapper.set(PayWorkingGroupSubItem::getConfirmVoucher, PayProjectCommon.IS_CONFIRM_VOUCHER);
+ payWorkingGroupSubItemMapper.update(null, updateWrapper);
+ }
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/AllProjectMoneyStatisticsController.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/AllProjectMoneyStatisticsController.java
index 9a3c169f..b556f904 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/AllProjectMoneyStatisticsController.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/AllProjectMoneyStatisticsController.java
@@ -74,7 +74,7 @@ public class AllProjectMoneyStatisticsController {
BigDecimal billMoney = BigDecimal.ZERO;
BigDecimal confirmAmount = BigDecimal.ZERO;
for (AllProjectStatistics item : list) {
- BigDecimal allMoney1 = new BigDecimal(item.getAllMoney());
+ BigDecimal allMoney1 = new BigDecimal(item.getEstimatedArrivalMoney());
allMoney = allMoney.add(allMoney1);
BigDecimal comeAllMoney1 = new BigDecimal(item.getComeAllMoney());
comeAllMoney = comeAllMoney.add(comeAllMoney1);
@@ -105,6 +105,6 @@ public class AllProjectMoneyStatisticsController {
public ModelAndView excel(AllProjectStatisticsSearch allProjectStatisticsSearch,
@RequestParam(name = "selections", required = false) String selections) {
List list = payWorkingGroupService.queryListAllProjectMoneyExcel(allProjectStatisticsSearch, null);
- return AmountUtil.exportListXls(list, AllProjectMoneyExcel.class, "收入统计");
+ return AmountUtil.exportListXls(list, AllProjectMoneyExcel.class, "全所收入统计");
}
}
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/AllProjectStatisticsController.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/AllProjectStatisticsController.java
index 1259acd4..77042f7e 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/AllProjectStatisticsController.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/AllProjectStatisticsController.java
@@ -6,12 +6,14 @@ 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.CommonConstant;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.oConvertUtils;
import com.jero.mail.commont.constant;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
+import com.jero.modules.system.model.SysUserSysDepartModel;
import com.jero.modules.system.service.ISysDepartService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.project.service.IPayWorkingGroupService;
@@ -21,6 +23,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
@@ -82,10 +85,10 @@ public class AllProjectStatisticsController {
//处理为空数据为0
for (AllProjectStatistics s : pageList.getRecords()) {
if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
- s.setAllMoney("0.00");
+ s.setAllMoney(CommonConstant.ZERO);
}
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
- s.setComeAllMoney("0.00");
+ s.setComeAllMoney(CommonConstant.ZERO);
}
}
@@ -151,10 +154,10 @@ public class AllProjectStatisticsController {
//处理为空数据为0
for (AllProjectStatistics s : pageList.getRecords()) {
if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
- s.setAllMoney("0.00");
+ s.setAllMoney(CommonConstant.ZERO);
}
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
- s.setComeAllMoney("0.00");
+ s.setComeAllMoney(CommonConstant.ZERO);
}
}
@@ -170,12 +173,12 @@ public class AllProjectStatisticsController {
}
/**
- * 所领导统计导出
+ * 全所统计导出
*/
@RequiresPermissions("wholeInstituteStatistics:export")
- @AutoLog(value = "全所统计导出-导出统计")
+ @AutoLog(value = "全所统计-导出统计")
@GetMapping(value = "/statistics/excel")
- @ApiOperation(value = "全所统计导出-导出统计", notes = "全所统计导出-导出统计")
+ @ApiOperation(value = "全所统计-导出统计", notes = "全所统计导出-导出统计")
public ModelAndView excel(AllProjectStatisticsSearch allProjectStatisticsSearch,
@RequestParam(name = "selections", required = false) String selections) {
allProjectStatisticsSearch.setProjectName(oConvertUtils.replaceAllPercent(allProjectStatisticsSearch.getProjectName()));
@@ -193,16 +196,26 @@ public class AllProjectStatisticsController {
String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key);
s.setChargeUse_text(payment_charge_use);
//处理为空数据为0
- if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
- s.setAllMoney("0.00");
+ String allMoney = s.getAllMoney();
+ if (StringUtils.isBlank(allMoney)) {
+ s.setAllMoney(CommonConstant.ZERO);
}
- if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
- s.setComeAllMoney("0.00");
+ String comeAllMoney = s.getComeAllMoney();
+ if (StringUtils.isBlank(comeAllMoney)) {
+ s.setComeAllMoney(CommonConstant.ZERO);
+ }
+ String confirmAmount = s.getConfirmAmount();
+ if (StringUtils.isBlank(confirmAmount)) {
+ s.setConfirmAmount(CommonConstant.ZERO);
+ }
+ String billMoney = s.getBillMoney();
+ if (StringUtils.isBlank(billMoney)) {
+ s.setBillMoney(CommonConstant.ZERO);
}
}
}
- return AmountUtil.exportListXls(pageList, AllProjectStatistics.class, "所领导统计");
+ return AmountUtil.exportListXls(pageList, AllProjectStatistics.class, "全所统计");
}
@@ -239,18 +252,28 @@ public class AllProjectStatisticsController {
return AmountUtil.exportListXls(objects, AllProjectStatistics.class, "科室统计");
}
- List pageList = payWorkingGroupService.queryPageListExcel(allProjectStatisticsSearch, idList);
+ List pageList = payWorkingGroupService.queryPageListExcelForProject(allProjectStatisticsSearch, idList);
if (pageList != null) {
for (AllProjectStatistics s : pageList) {
String key = String.valueOf(s.getChargeUse());
String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key);
s.setChargeUse_text(payment_charge_use);
//处理为空数据为0
- if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
- s.setAllMoney("0.00");
+ String allMoney = s.getAllMoney();
+ if (StringUtils.isBlank(allMoney)) {
+ s.setAllMoney(CommonConstant.ZERO);
}
- if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
- s.setComeAllMoney("0.00");
+ String comeAllMoney = s.getComeAllMoney();
+ if (StringUtils.isBlank(comeAllMoney)) {
+ s.setComeAllMoney(CommonConstant.ZERO);
+ }
+ String confirmAmount = s.getConfirmAmount();
+ if (StringUtils.isBlank(confirmAmount)) {
+ s.setConfirmAmount(CommonConstant.ZERO);
+ }
+ String billMoney = s.getBillMoney();
+ if (StringUtils.isBlank(billMoney)) {
+ s.setBillMoney(CommonConstant.ZERO);
}
}
}
@@ -264,8 +287,8 @@ public class AllProjectStatisticsController {
queryWrapper.eq("org_code", departCode);
queryWrapper.eq("del_flag", 0);
queryWrapper.eq("status", 1);
- List pageList = sysUserService.list(queryWrapper);
- return Result.OK(pageList);
+ List sysUserSysDepartModels = sysUserService.listUserByOrgCode(departCode);
+ return Result.OK(sysUserSysDepartModels);
}
/**
@@ -304,11 +327,22 @@ public class AllProjectStatisticsController {
HashMap hashMap = new HashMap<>();
//处理为空数据为0
for (DepartStatistics s : pageList.getRecords()) {
- if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
- s.setAllMoney("0.00");
+ //处理为空数据为0
+ String allMoney = s.getAllMoney();
+ if (StringUtils.isBlank(allMoney)) {
+ s.setAllMoney(CommonConstant.ZERO);
}
- if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
- s.setComeAllMoney("0.00");
+ String comeAllMoney = s.getComeAllMoney();
+ if (StringUtils.isBlank(comeAllMoney)) {
+ s.setComeAllMoney(CommonConstant.ZERO);
+ }
+ String confirmAmount = s.getConfirmAmount();
+ if (StringUtils.isBlank(confirmAmount)) {
+ s.setConfirmAmount(CommonConstant.ZERO);
+ }
+ String billMoney = s.getBillMoney();
+ if (StringUtils.isBlank(billMoney)) {
+ s.setBillMoney(CommonConstant.ZERO);
}
}
@@ -353,11 +387,22 @@ public class AllProjectStatisticsController {
List list = payWorkingGroupService.queryPageListDepartmentExcel(departStatisticsSearch, idList);
//处理为空数据为0
for (DepartStatistics s : list) {
- if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
- s.setAllMoney("0.00");
+ //处理为空数据为0
+ String allMoney = s.getAllMoney();
+ if (StringUtils.isBlank(allMoney)) {
+ s.setAllMoney(CommonConstant.ZERO);
}
- if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
- s.setComeAllMoney("0.00");
+ String comeAllMoney = s.getComeAllMoney();
+ if (StringUtils.isBlank(comeAllMoney)) {
+ s.setComeAllMoney(CommonConstant.ZERO);
+ }
+ String confirmAmount = s.getConfirmAmount();
+ if (StringUtils.isBlank(confirmAmount)) {
+ s.setConfirmAmount(CommonConstant.ZERO);
+ }
+ String billMoney = s.getBillMoney();
+ if (StringUtils.isBlank(billMoney)) {
+ s.setBillMoney(CommonConstant.ZERO);
}
}
return AmountUtil.exportListXls(list, DepartStatistics.class, "科室总体统计");
diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/CompanyComeMoneyStatisticsController.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/CompanyComeMoneyStatisticsController.java
index fa97b0a4..99380ee4 100644
--- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/CompanyComeMoneyStatisticsController.java
+++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/CompanyComeMoneyStatisticsController.java
@@ -1,16 +1,22 @@
package com.jero.statistics.controller;
+import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.CommonConstant;
import com.jero.common.system.api.ISysBaseAPI;
+import com.jero.common.system.vo.DictModel;
+import com.jero.common.util.SpringContextUtils;
import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.service.IPayCompanyManagementService;
+import com.jero.config.StaticConfig;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.statistics.entity.*;
@@ -20,8 +26,13 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.jeecgframework.poi.excel.ExcelExportUtil;
+import org.jeecgframework.poi.excel.entity.TemplateExportParams;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@@ -29,8 +40,15 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.util.*;
+import java.util.stream.Collectors;
+
+import static cn.hutool.poi.excel.sax.AttributeName.s;
/**
* @author zql
@@ -49,7 +67,6 @@ public class CompanyComeMoneyStatisticsController {
private IPayWorkingGroupService payWorkingGroupService;
@Autowired
private IPayCompanyManagementService payCompanyManagementService;
-
/**
* 分页列表查询
*
@@ -165,14 +182,22 @@ public class CompanyComeMoneyStatisticsController {
List pageList = payWorkingGroupService.queryPageListForCompanyExcel(companyComeMoneySearch, null);
//处理为空数据为0
for (CompanyComeMoneyList s : pageList) {
- if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
- s.setAllMoney("0.00");
+ //处理为空数据为0
+ String allMoney = s.getAllMoney();
+ if (StringUtils.isBlank(allMoney)) {
+ s.setAllMoney(CommonConstant.ZERO);
}
- if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
- s.setComeAllMoney("0.00");
+ String comeAllMoney = s.getComeAllMoney();
+ if (StringUtils.isBlank(comeAllMoney)) {
+ s.setComeAllMoney(CommonConstant.ZERO);
}
- if (s.getFinishRate() == null || s.getFinishRate().equals("")) {
- s.setFinishRate("0.00%");
+ String confirmAmount = s.getConfirmAmount();
+ if (StringUtils.isBlank(confirmAmount)) {
+ s.setConfirmAmount(CommonConstant.ZERO);
+ }
+ String billMoney = s.getBillMoney();
+ if (StringUtils.isBlank(billMoney)) {
+ s.setBillMoney(CommonConstant.ZERO);
}
}
return AmountUtil.exportListXls(pageList, CompanyComeMoneyList.class, "企业来款统计");
@@ -196,22 +221,312 @@ public class CompanyComeMoneyStatisticsController {
String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key);
s.setChargeUse_text(payment_charge_use);
//处理为空数据为0
- for (CompanyComeMoneyDetail ss : pageList) {
- if (ss.getAllMoney() == null || ss.getAllMoney().equals("")) {
- ss.setAllMoney("0.00");
- }
- if (ss.getComeAllMoney() == null || ss.getComeAllMoney().equals("")) {
- ss.setComeAllMoney("0.00");
- }
- if (s.getBillMoney() == null || s.getBillMoney().equals("")) {
- s.setBillMoney("0.00");
- }
+ String allMoney = s.getAllMoney();
+ if (StringUtils.isBlank(allMoney)) {
+ s.setAllMoney(CommonConstant.ZERO);
+ }
+ String comeAllMoney = s.getComeAllMoney();
+ if (StringUtils.isBlank(comeAllMoney)) {
+ s.setComeAllMoney(CommonConstant.ZERO);
+ }
+ String confirmAmount = s.getConfirmAmount();
+ if (StringUtils.isBlank(confirmAmount)) {
+ s.setConfirmAmount(CommonConstant.ZERO);
+ }
+ String billMoney = s.getBillMoney();
+ if (StringUtils.isBlank(billMoney)) {
+ s.setBillMoney(CommonConstant.ZERO);
}
}
- return AmountUtil.exportListXls(pageList, CompanyComeMoneyDetail.class, "企业来款详情统计");
+ return AmountUtil.exportListXls(pageList, CompanyComeMoneyDetail.class, "企业来款统计详情");
}
+ /**
+ * 分类统计
+ *
+ * @param companyComeMoneySearch 企业来款统计
+ */
+ @RequiresPermissions("companyPaymentStatistics:search")
+ @ApiOperation(value = "企业来款统计-分类统计")
+ @GetMapping(value = "/classification")
+ public Result> classification(CompanyComeMoneySearch companyComeMoneySearch,
+ @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+ @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+ String chargeCompanyId = companyComeMoneySearch.getChargeCompanyId();
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ List chargeCompanyIds = new ArrayList<>();
+ CompanyComeMoneySearch allSearch = new CompanyComeMoneySearch();
+ if (StringUtils.isNotBlank(chargeCompanyId)){
+ chargeCompanyIds = StrUtil.split(chargeCompanyId, ',');
+ allSearch.setChargeCompanyIds(chargeCompanyIds);
+ wrapper.in(PayCompanyManagement::getId,chargeCompanyIds);
+ }
+ //获取分页后需要统计的企业
+ Page page = new Page<>(pageNo, pageSize);
+ Page companyManagementPage = payCompanyManagementService.pageHaveMoney(page,chargeCompanyIds);
+ List companyManagementList = companyManagementPage.getRecords();
+ chargeCompanyIds = companyManagementList.stream().map(PayCompanyManagement::getId).collect(Collectors.toList());
+ companyComeMoneySearch.setChargeCompanyIds(chargeCompanyIds);
+
+ String year_begin = companyComeMoneySearch.getYear_begin();
+ String year_end = companyComeMoneySearch.getYear_end();
+ int integer1 = Integer.parseInt(year_begin);
+ int integer2 = Integer.parseInt(year_end);
+ int i = integer2 - integer1;
+ List years = new LinkedList<>();
+ years.add(year_begin);
+ for (int i1 = 1; i1 <= i; i1++) {
+ years.add(String.valueOf(integer1+i1));
+ }
+ companyComeMoneySearch.setYears(years);
+ allSearch.setYears(years);
+ //获取当前分页数据
+ List list = payWorkingGroupService.queryPageListForCompanyClassification(companyComeMoneySearch);
+ //获取总金额
+ List allMoneyList = payWorkingGroupService.queryPageListForCompanyClassification(allSearch);
+ //拼接返回值map
+ Map map = new HashMap<>();
+ //获取表头
+ List dictModels = sysBaseAPI.queryDictItemsByCode("payment_charge_use");
+ List