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 importXls(HttpServletRequest request) { + List excelData = super.getExcelData(request, PayMeetingHotelRecommendExcel.class); + payMeetingHotelRecommendService.addExcel(excelData); + return Result.OK("文件导入成功!"); + } + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/WorkGroupMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/WorkGroupMeetingSituationController.java index f359b550..a486d374 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/WorkGroupMeetingSituationController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/WorkGroupMeetingSituationController.java @@ -29,9 +29,12 @@ 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; +import java.util.stream.Collectors; /** @@ -86,6 +89,12 @@ public class WorkGroupMeetingSituationController 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/entity/PayMeetingHotelRecommend.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingHotelRecommend.java new file mode 100644 index 00000000..eafc7e53 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingHotelRecommend.java @@ -0,0 +1,75 @@ +package com.jero.meeting.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import java.io.Serializable; +import java.util.Date; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + *

+ * 会议酒店推荐表 + *

+ * + * @author sz + * @since 2024-07-10 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("pay_meeting_hotel_recommend") +@ApiModel(value="PayMeetingHotelRecommend对象", description="会议酒店推荐表") +public class PayMeetingHotelRecommend implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty(value = "推荐人") + private String recommendPeople; + + @ApiModelProperty(value = "酒店名称") + private String hotelName; + + @ApiModelProperty(value = "所在省份") + private String hotelProvince; + + @ApiModelProperty(value = "所在城市") + private String hotelCity; + + @ApiModelProperty(value = "是否举办过标准院会议 1-是 0-否") + @Dict(dicCode = "yn") + private Integer isHold; + + @ApiModelProperty(value = "曾举办的会议类型") +// @Dict(dicCode = "meeting_type") + private String meetingType; + + @ApiModelProperty(value = "酒店联系方式") + private String contact; + + @ApiModelProperty(value = "备注") + private String remark; + + @ApiModelProperty(value = "创建人") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private Date createTime; + + @ApiModelProperty(value = "更新人") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private Date updateTime; + + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java index 0da48f48..e4b99893 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java @@ -586,4 +586,9 @@ public class PayMeetingSituation implements Serializable { @ApiModelProperty(value = "预计到账日期") private Date estimatedArrivalDate; + /**预计到账日期*/ + @ApiModelProperty(value = "预计到账日期") + @TableField(exist = false) + private String estimatedArrivalDateStr; + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingHotelRecommendMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingHotelRecommendMapper.java new file mode 100644 index 00000000..113dc665 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingHotelRecommendMapper.java @@ -0,0 +1,20 @@ +package com.jero.meeting.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.meeting.entity.PayMeetingHotelRecommend; +import org.apache.ibatis.annotations.Update; + +/** + *

+ * 会议酒店推荐表 Mapper 接口 + *

+ * + * @author sz + * @since 2024-07-10 + */ +public interface PayMeetingHotelRecommendMapper extends BaseMapper { + + @Update("TRUNCATE TABLE pay_meeting_hotel_recommend") + void truncateTable(); + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingMapper.java index 0ff0c727..1746586c 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingMapper.java @@ -35,7 +35,7 @@ public interface PayMeetingMapper extends BaseMapper { IPage workGroupPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); - IPage draftGroupPage(Page page,@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + IPage draftGroupPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); IPage standardPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingSituationMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingSituationMapper.java index c4ac1763..3dafee03 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingSituationMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingSituationMapper.java @@ -38,4 +38,19 @@ public interface PayMeetingSituationMapper extends BaseMapper getMeetingPackStatistics(@Param(Constants.WRAPPER) QueryWrapper query); MeetingPackStatistics getMeetingPackStatisticsCount(@Param(Constants.WRAPPER) QueryWrapper query); + + /** + * 根据年份获取参会人 + * @param year 年份 + */ + List listByYear(@Param("year")String year); + + /** + * 根据年份获取参会人 + * + * @param yearList 年份 + * @param companyManagementId + */ + List listByYearNotIn(@Param("yearList") List yearList, @Param("companyManagementId") String companyManagementId); + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingHotelRecommendMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingHotelRecommendMapper.xml new file mode 100644 index 00000000..8f8cb61c --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingHotelRecommendMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml index cdd5a5b0..c010b4d8 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingSituationMapper.xml @@ -1,6 +1,53 @@ + + id, + create_by, + create_time, + update_by, + update_time, + meeting_id, + company_id, + company_name, + company_contact_id, + company_contact_name, + post, + phone, + email, + `identity`, + guest_type, + speech_topic, + speech_ppt, + photo, + profile, + have_meals, + hui_people, + check_in_hotel, + in_hotel_time, + out_hotel_time, + room_layout, + arrival_time, + destination, + arrival_shift, + delivery_station, + departure_time, + departure_station, + departure_shift, + remark, + check_in, + pick_up, + post_contact_id, + post_contact_address, + pay_mode, + need_invoice, + payment_record, + `status`, + pack, + in_account, + make_invoice, + mail + @@ -202,4 +249,29 @@ from v_meeting_pack_statistical ${ew.customSqlSegment} + + + + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingHotelRecommendService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingHotelRecommendService.java new file mode 100644 index 00000000..d715beb6 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingHotelRecommendService.java @@ -0,0 +1,32 @@ +package com.jero.meeting.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.meeting.entity.PayMeetingHotelRecommend; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + *

+ * 会议酒店推荐表 服务类 + *

+ * + * @author sz + * @since 2024-07-10 + */ +public interface IPayMeetingHotelRecommendService extends IService { + + /** + * 分页列表查询 + * @param meetingHotelRecommend + * @param pageNo + * @param pageSize + * @param req + * @return + */ + IPage queryHotelRecommendS(PayMeetingHotelRecommend meetingHotelRecommend, Integer pageNo, Integer pageSize, HttpServletRequest req); + + void addExcel(List excelData); +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingHotelRecommendServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingHotelRecommendServiceImpl.java new file mode 100644 index 00000000..e6a0836a --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingHotelRecommendServiceImpl.java @@ -0,0 +1,162 @@ +package com.jero.meeting.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.api.ISysBaseAPI; +import com.jero.common.system.query.QueryGenerator; +import com.jero.common.util.ValidUtil; +import com.jero.meeting.entity.PayMeetingHotelRecommend; +import com.jero.meeting.mapper.PayMeetingHotelRecommendMapper; +import com.jero.meeting.service.IPayMeetingHotelRecommendService; +import com.jero.meeting.vo.excel.PayMeetingHotelRecommendExcel; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + *

+ * 会议酒店推荐表 服务实现类 + *

+ * + * @author sz + * @since 2024-07-10 + */ +@Service +public class PayMeetingHotelRecommendServiceImpl extends ServiceImpl implements IPayMeetingHotelRecommendService { + + @Resource + private ISysBaseAPI sysBaseAPI; + @Resource + private PayMeetingHotelRecommendMapper payMeetingHotelRecommendMapper; + + /** + * 分页列表查询 + * + * @param meetingHotelRecommend + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @Override + public IPage queryHotelRecommendS(PayMeetingHotelRecommend meetingHotelRecommend, Integer pageNo, Integer pageSize, HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(meetingHotelRecommend, req.getParameterMap()); + String recommendPeople = req.getParameter("recommendPeople"); + String hotelName = req.getParameter("hotelName"); + String hotelProvince = req.getParameter("hotelProvince"); + String hotelCity = req.getParameter("hotelCity"); + String isHold = req.getParameter("isHold"); + String meetingType = req.getParameter("meetingType"); + String contact = req.getParameter("contact"); + String remark = req.getParameter("remark"); + if (StringUtils.isNotBlank(recommendPeople)) { + queryWrapper.lambda().like(PayMeetingHotelRecommend::getRecommendPeople,recommendPeople); + } + if (StringUtils.isNotBlank(hotelName)) { + queryWrapper.lambda().like(PayMeetingHotelRecommend::getHotelName,hotelName); + } + if (StringUtils.isNotBlank(hotelProvince)) { + queryWrapper.lambda().like(PayMeetingHotelRecommend::getHotelProvince,hotelProvince); + } + if (StringUtils.isNotBlank(hotelCity)) { + queryWrapper.lambda().like(PayMeetingHotelRecommend::getHotelCity,hotelCity); + } + if (StringUtils.isNotBlank(isHold)) { + queryWrapper.lambda().eq(PayMeetingHotelRecommend::getIsHold,isHold); + } + if (StringUtils.isNotBlank(meetingType)) { + queryWrapper.lambda().like(PayMeetingHotelRecommend::getMeetingType,meetingType); + } + if (StringUtils.isNotBlank(contact)) { + queryWrapper.lambda().like(PayMeetingHotelRecommend::getContact,contact); + } + if (StringUtils.isNotBlank(remark)) { + queryWrapper.lambda().like(PayMeetingHotelRecommend::getRemark,remark); + } + Page page = new Page(pageNo, pageSize); + return page(page,queryWrapper); + } + + @Override + public void addExcel(List excelData) { + if (excelData.isEmpty()) { + throw new JeroBootException("导入数据为空,请填写数据之后重新导入!"); + } + // 是或否 + Map ynMap = sysBaseAPI.queryDictItemsMapByCode("yn"); +// // 会议类型 +// Map meetingTypeMap = sysBaseAPI.queryDictItemsMapByCode("meeting_type"); + int errorRowNum = 2; + List errorMessage = new ArrayList<>(); + List insertList = new ArrayList<>(); + for (Object obj : excelData) { + errorRowNum += 1; + PayMeetingHotelRecommendExcel submitExcel = (PayMeetingHotelRecommendExcel) obj; + PayMeetingHotelRecommend payMeetingHotelRecommend = new PayMeetingHotelRecommend(); + List errorList = ValidUtil.validateReturnListWithNum(submitExcel, errorRowNum); + errorMessage.addAll(errorList); + // 是否举办过标院会议 + String isHold = submitExcel.getIsHold(); + if (StringUtils.isBlank(isHold)){ + + }else if (!ynMap.containsKey(isHold)){ + errorMessage.add("第" + errorRowNum + "行:" + "是否举办过标准院会议请填写是或否"); + }else { + int isHoldInt = Integer.parseInt(ynMap.get(isHold)); + payMeetingHotelRecommend.setIsHold(isHoldInt); + } + // 曾举办会议类型 + if (ValidUtil.checkErrorList(errorList,"曾举办的会议类型")) { + String meetingType = submitExcel.getMeetingType(); + payMeetingHotelRecommend.setMeetingType(meetingType); + } + // 推荐人 + if (ValidUtil.checkErrorList(errorList,"推荐人")) { + String amountReceivable = submitExcel.getRecommendPeople(); + payMeetingHotelRecommend.setRecommendPeople(amountReceivable); + } + // 酒店名称 + if (ValidUtil.checkErrorList(errorList,"酒店名称")) { + String hotelName = submitExcel.getHotelName(); + payMeetingHotelRecommend.setHotelName(hotelName); + } + // 所在省份 + if (ValidUtil.checkErrorList(errorList,"所在省份")) { + String hotelProvince = submitExcel.getHotelProvince(); + payMeetingHotelRecommend.setHotelProvince(hotelProvince); + } + // 所在省份 + if (ValidUtil.checkErrorList(errorList,"所在城市")) { + String hotelCity = submitExcel.getHotelCity(); + payMeetingHotelRecommend.setHotelCity(hotelCity); + } + // 所在省份 + if (ValidUtil.checkErrorList(errorList,"酒店联系方式")) { + String contact = submitExcel.getContact(); + payMeetingHotelRecommend.setContact(contact); + } + // 备注 + String remark = submitExcel.getRemark(); + payMeetingHotelRecommend.setRemark(remark); + insertList.add(payMeetingHotelRecommend); + } + if (!errorMessage.isEmpty()) { + StringBuilder msg = new StringBuilder(); + for (String s : errorMessage) { + msg.append(s).append(",请修改!
"); + } + throw new JeroBootException(msg.toString()); + } + // 先将酒店推荐表清空 + payMeetingHotelRecommendMapper.truncateTable(); + // 全量导入 + this.saveBatch(insertList); + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java index ce012830..eace24db 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java @@ -11,6 +11,7 @@ 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.RoleCommon; import com.jero.common.constant.CommonConstant; import com.jero.common.dto.SendMessageDTO; import com.jero.common.enums.CompanyMessageEnums; @@ -62,8 +63,10 @@ import com.jero.member.service.ITbMemberProjectService; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; import com.jero.project.common.PayProjectCommon; +import com.jero.project.entity.AnnualDataLocking; import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroupSubItemContacts; +import com.jero.project.service.AnnualDataLockingService; import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupSubItemContactsService; import com.jero.project.service.IPayWorkingGroupSubItemService; @@ -157,6 +160,8 @@ public class PayMeetingServiceImpl extends ServiceImpl upPayMeetingSituation = new LambdaUpdateWrapper<>(); upPayMeetingSituation.eq(PayMeetingSituation::getMeetingId, meetingId); @@ -454,9 +460,15 @@ public class PayMeetingServiceImpl extends ServiceImpl 0) { throw new JeroBootException("会议名称不能重复"); } @@ -489,6 +501,7 @@ public class PayMeetingServiceImpl extends ServiceImpl 0) { throw new JeroBootException("该会议有参会人无法删除"); } + PayMeeting payMeeting = getById(id); + String year = payMeeting.getParticularYear(); + //判断用户是否能操作所选年份数据 + AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year); removeById(id); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PayMeetingHotelContacts::getMeetingId, id); @@ -685,6 +702,10 @@ public class PayMeetingServiceImpl extends ServiceImpl 0) { throw new JeroBootException(meetingList + "会议下有参会人,无法删除"); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java index dfe5154d..137a0bf0 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java @@ -76,12 +76,16 @@ import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.payment.entity.PayPaymentRecord; import com.jero.payment.service.IPayPaymentRecordService; import com.jero.project.common.PayProjectCommon; +import com.jero.project.entity.AnnualDataLocking; import com.jero.project.entity.PayWorkingGroupSubItemContacts; +import com.jero.project.service.AnnualDataLockingService; import com.jero.project.service.IPayWorkingGroupSubItemContactsService; import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.standards.memberinfo.service.IMemberInfoService; import com.jero.statistics.entity.MeetingPackStatistics; import com.jero.statistics.entity.MeetingPackStatisticsSearch; +import com.jero.temporary.entity.PayCompanyManagementTemporary; +import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService; import com.jero.util.ObjRecordUtil; @@ -173,7 +177,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl ids) { + List payMeetingSituations = this.listByIds(ids); + List meetingIds = payMeetingSituations.stream().map(PayMeetingSituation::getMeetingId).distinct().collect(Collectors.toList()); + List payMeetings = meetingService.listByIds(meetingIds); + for (PayMeeting payMeeting : payMeetings) { + //判断用户是否能操作所选年份数据 + AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payMeeting.getParticularYear()); + } for (String id : ids) { removeSituationPack(id); } @@ -1743,16 +1768,18 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl exportList = new ArrayList<>(); for (PayMeetingSituation meetingSituation : pageList) { - + String companyId = meetingSituation.getCompanyId(); + String companyTemporaryId = meetingSituation.getCompanyTemporaryId(); String companyContactId = meetingSituation.getCompanyContactId(); - PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId); + String companyContactTemporaryId = meetingSituation.getCompanyContactTemporaryId(); + PayContactsManagementTemporary contactsManagement = contactsManagementTemporaryService.getByAllTable(companyContactId, companyContactTemporaryId); meetingSituation.setCompanyContactName(contactsManagement.getName()); if (!MeetingCommon.INTERNATIONAL_MEETING.equals(meetingType1)){ meetingSituation.setPost(contactsManagement.getPost()); } meetingSituation.setPhone(PasswordUtil.decrypt(contactsManagement.getPhone())); meetingSituation.setEmail(PasswordUtil.decrypt(contactsManagement.getEmail())); - PayCompanyManagement companyManagement = companyManagementService.getById(contactsManagement.getCompanyId()); + PayCompanyManagementTemporary companyManagement = companyManagementTemporaryService.getByAllTable(companyId, companyTemporaryId); meetingSituation.setCompanyName(companyManagement.getCompanyName()); String checkFile = meetingSituation.getCheckFile(); if (StringUtils.isNotBlank(checkFile)) { @@ -2137,8 +2164,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl + * 会议酒店推荐表 + *

+ * + * @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 JeroController 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.id,tmps.create_by,tmps.create_time,tmps.update_by,tmps.update_time,tmps.project_id,tmps.member_no, + tmps.company_id, + tmps.company_temporary_id, + ifnull( IF( + tmps.company_name = + IF( + tmps.company_name LIKE '%(未审核)', + CONCAT(pcm.company_name, '(未审核)'), + pcm.company_name + ), + tmps.company_name, + CONCAT(tmps.company_name, '(更名为', pcm.company_name, ')') + ), tmps.company_name) AS company_name, + tmps.member_nature, + tmps.member_type,tmps.liaison_man_id,tmps.company_contact_temporary_id, + tmps.liaison_man,tmps.post_company_id,tmps.post_contact_id,tmps.post_contact_temporary_id,tmps.email,tmps.mobile, + tmps.member_status,tmps.register_time,tmps.amount_receivable,tmps.tax_rate, + tmps.tax,tmps.no_tax_amount,tmps.paid_amount,tmps.confirm_amount,tmps.estimated_arrival_date, + tmps.invoice_requirements,tmps.pack,tmps.in_account,tmps.make_invoice,tmps.affirm_income, + tmps.mail,tmps.ticket_collection,tmps.charge_use,tmps.payment_method,tmps.tb_payment_id,tmps.invoice_amount, + tmps.payment_status,tmps.bill_number,tmps.member_id,tmps.payment_record, + tmps.submission_time,tmps.header_name,tmps.tax_number,tmps.invoice_address,tmps.invoice_phone,tmps.deposit_bank, + tmps.bank_account,tmps.link_bank_number,tmps.confirm_tax,tmps.confirm_no_tax_amount,tmps.paid_tax,tmps.paid_no_tax_amount, + tmps.invoice_tax,tmps.invoice_no_tax_amount,tmps.member_payment_amount,tmps.certificate_payment_amount,tmps.other_payment_amount, + tmps.admin_add_flag,tmps.charge_notice_no,tmps.charge_notice_id,tmps.contract_num,tmps.remark,tmps.effective_date, + tmps.invalidation_date + from tb_member_project_subitem tmps LEFT JOIN tb_member_project tmp on tmp.id = tmps.project_id + left join pay_company_management pcm on tmps.company_id = pcm.id ${ew.customSqlSegment} @@ -169,4 +197,18 @@ tmps.company_id = #{companyId} + + + + \ 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 @@ + + \ 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 pay_annual_data_locking + + + and `year`=#{year,jdbcType=VARCHAR} + + + + + + + \ 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 @@ -2350,7 +2342,7 @@ order by bill_date - + - 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 + + + + + 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 @@ @@ -381,4 +401,10 @@ left join pay_working_group pwg ON pwgs.working_group_id = pwg.id ${ew.customSqlSegment} + + 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> titleList = new ArrayList<>(); + //总金额map + Map allMap = new HashMap<>(); + BigDecimal zero = new BigDecimal("0.00"); + for (String s : years) { + Map lm = new HashMap<>(); + lm.put("name", s + "年度待确收金额"); + lm.put("key", s); + allMap.put(s,zero.toString()); + titleList.add(lm); + } + for (String s : years) { + for (DictModel dictModel : dictModels) { + Map lm = new HashMap<>(); + String text = dictModel.getText(); + String value = dictModel.getValue(); + lm.put("name", s + "年度-" + text +"-待确收金额"); + lm.put("key", s+"_"+value); + allMap.put(s+"_"+value,zero.toString()); + titleList.add(lm); + } + } + map.put("titleList", titleList); + //统计金额 + List> valList = new ArrayList<>(); + //先按企业id分组 + Map> companyIdKeyMap = CollStreamUtil.groupByKey(list, CompanyComeMoneyClassificationList::getCompanyId); + for (PayCompanyManagement companyManagement : companyManagementList) { + String companyId = companyManagement.getId(); + Map lm = new HashMap<>(); + + String companyName = companyManagement.getCompanyName(); + lm.put("name", companyName); + + //获取单一企业数据 + List companyDateList = companyIdKeyMap.get(companyId); + //按年份分组 + Map> yearKeyMap = CollStreamUtil.groupByKey(companyDateList, CompanyComeMoneyClassificationList::getYear); + for (String yearKey : years) { + //获得单一年数据 + List dataList = yearKeyMap.get(yearKey); + BigDecimal bigDecimal = new BigDecimal("0.00"); + if (dataList != null){ + for (CompanyComeMoneyClassificationList list1 : dataList) { + String allMoney = list1.getAllMoney(); + bigDecimal = bigDecimal.add(new BigDecimal(allMoney)); + } + } + lm.put(yearKey, bigDecimal.toString()); + } + for (String yearKey : years) { + //获得单一年数据 + List dataList = yearKeyMap.get(yearKey); + for (DictModel dictModel : dictModels) { + BigDecimal bigDecimal = new BigDecimal("0.00"); + String value = dictModel.getValue(); + if (dataList != null){ + for (CompanyComeMoneyClassificationList list2 : dataList) { + if (list2.getChargeUse().equals(value)) { + String allMoney = list2.getAllMoney(); + bigDecimal = bigDecimal.add(new BigDecimal(allMoney)); + } + } + } + String key = yearKey + "_" + value; + lm.put(key, bigDecimal.toString()); + } + } + valList.add(lm); + } + map.put("valList", valList); + //存入总金额 + //按年份分组 + Map> yearKeyMap = CollStreamUtil.groupByKey(allMoneyList, CompanyComeMoneyClassificationList::getYear); + for (String yearKey : years) { + //获得单一年数据 + List dataList = yearKeyMap.get(yearKey); + BigDecimal bigDecimal = new BigDecimal("0.00"); + if (dataList != null){ + for (CompanyComeMoneyClassificationList list1 : dataList) { + String allMoney = list1.getAllMoney(); + bigDecimal = bigDecimal.add(new BigDecimal(allMoney)); + } + } + String allStr = allMap.get(yearKey); + BigDecimal all = new BigDecimal(allStr).add(bigDecimal); + allMap.put(yearKey,all.toString()); + } + for (String yearKey : years) { + //获得单一年数据 + List dataList = yearKeyMap.get(yearKey); + for (DictModel dictModel : dictModels) { + BigDecimal bigDecimal = new BigDecimal("0.00"); + String value = dictModel.getValue(); + if (dataList != null){ + for (CompanyComeMoneyClassificationList list2 : dataList) { + if (list2.getChargeUse().equals(value)) { + String allMoney = list2.getAllMoney(); + bigDecimal = bigDecimal.add(new BigDecimal(allMoney)); + } + } + } + String key = yearKey + "_" + value; + String allStr = allMap.get(key); + BigDecimal all = new BigDecimal(allStr).add(bigDecimal); + allMap.put(key,all.toString()); + } + } + map.put("allMap", allMap); + + map.put("page", page.setRecords(null)); + return Result.OK(map); + + }/** + * 分类统计 + * + * @param companyComeMoneySearch 企业来款统计 + */ + @RequiresPermissions("companyPaymentStatistics:search") + @ApiOperation(value = "企业来款统计-分类统计导出") + @GetMapping(value = "/classificationExcel") + public void classificationExcel(CompanyComeMoneySearch companyComeMoneySearch, + HttpServletResponse response) { + String chargeCompanyId = companyComeMoneySearch.getChargeCompanyId(); + List chargeCompanyIds = new ArrayList<>(); + CompanyComeMoneySearch allSearch = new CompanyComeMoneySearch(); + if (StringUtils.isNotBlank(chargeCompanyId)){ + chargeCompanyIds = StrUtil.split(chargeCompanyId, ','); + allSearch.setChargeCompanyIds(chargeCompanyIds); + } + List companyManagementList = payCompanyManagementService.pageHaveMoney(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); + Map map = new HashMap<>(); + //获取表头 + List dictModels = sysBaseAPI.queryDictItemsByCode("payment_charge_use"); + List> titleList = new ArrayList<>(); + for (String s : years) { + Map lm = new HashMap<>(); + lm.put("name", s + "年度待确收金额"); + lm.put("je", "t.je_"+s); + + titleList.add(lm); + } + for (String s : years) { + for (DictModel dictModel : dictModels) { + Map lm = new HashMap<>(); + String text = dictModel.getText(); + String value = dictModel.getValue(); + lm.put("name", s + "年度-" + text +"-待确收金额"); + lm.put("je", "t.je_"+s+"_"+value); + titleList.add(lm); + } + } + map.put("titleList", titleList); + //获取数据 + List list = payWorkingGroupService.queryPageListForCompanyClassification(allSearch); + List> valList = new ArrayList<>(); + //先按企业id分组 + Map> companyIdKeyMap = CollStreamUtil.groupByKey(list, CompanyComeMoneyClassificationList::getCompanyId); + for (PayCompanyManagement companyManagement : companyManagementList) { + String companyId = companyManagement.getId(); + Map lm = new HashMap<>(); + + String companyName = companyManagement.getCompanyName(); + lm.put("name", companyName); + //获取单一企业数据 + List companyDateList = companyIdKeyMap.get(companyId); + //按年份分组 + Map> yearKeyMap = CollStreamUtil.groupByKey(companyDateList, CompanyComeMoneyClassificationList::getYear); + for (String yearKey : years) { + //获得单一年数据 + List dataList = yearKeyMap.get(yearKey); + BigDecimal bigDecimal = new BigDecimal("0.00"); + if (dataList != null){ + for (CompanyComeMoneyClassificationList list1 : dataList) { + String allMoney = list1.getAllMoney(); + bigDecimal = bigDecimal.add(new BigDecimal(allMoney)); + } + } + lm.put("je_"+yearKey, bigDecimal.toString()); + } + for (String yearKey : years) { + //获得单一年数据 + List dataList = yearKeyMap.get(yearKey); + for (DictModel dictModel : dictModels) { + BigDecimal bigDecimal = new BigDecimal("0.00"); + String value = dictModel.getValue(); + if (dataList != null){ + for (CompanyComeMoneyClassificationList list2 : dataList) { + if (list2.getChargeUse().equals(value)) { + String allMoney = list2.getAllMoney(); + bigDecimal = bigDecimal.add(new BigDecimal(allMoney)); + } + } + } + lm.put("je_"+yearKey+"_"+value, bigDecimal.toString()); + } + } + valList.add(lm); + } + map.put("valList", valList); + + + String excelName = "企业来款分类统计导出模板.xlsx"; + String tPath = StaticConfig.TEMPLATE_PATH + excelName; + + TemplateExportParams params = new TemplateExportParams(tPath); + params.setColForEach(true); + Workbook workbook = ExcelExportUtil.exportExcel(params, map); + try { + response.setContentType("application/ms-excel;charset=UTF-8"); + response.setContentType("application/x-download"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-Disposition", + "attachment;filename=".concat(String.valueOf(URLEncoder.encode("企业来款分类统计.xlsx", "UTF-8")))); + ServletOutputStream outputStream = response.getOutputStream(); + workbook.write(outputStream); + workbook.close(); + + if (outputStream != null) { + outputStream.close(); + } + }catch (Exception e){ + + } + + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/PayWorkingGroupStatisticsController.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/PayWorkingGroupStatisticsController.java index 90bc1dc5..f9163aac 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/PayWorkingGroupStatisticsController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/PayWorkingGroupStatisticsController.java @@ -1,10 +1,10 @@ package com.jero.statistics.controller; 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.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.util.oConvertUtils; import com.jero.modules.system.mapper.SysUserMapper; @@ -21,6 +21,7 @@ import io.swagger.annotations.ApiImplicitParam; 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.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -47,7 +48,6 @@ public class PayWorkingGroupStatisticsController { private IPayWorkingGroupSubItemService payWorkingGroupSubItemService; @Autowired private IPayWorkingGroupService payWorkingGroupService; - /** * 工作组项目统计-统计分页列表查询 * @@ -107,13 +107,25 @@ public class PayWorkingGroupStatisticsController { List pageList = payWorkingGroupService.queryPageListForStatisticsExcel(payWorkingGroupSearch, null); //处理为空数据为0 for (PayWorkingGroupStatistics s : pageList) { - if (s.getAllMoney() == null || s.getAllMoney().equals("")) { - s.setAllMoney("0.00"); + //处理为空数据为0 + String allMoney = s.getAllMoney(); + if (org.apache.commons.lang3.StringUtils.isBlank(allMoney)) { + s.setAllMoney(CommonConstant.ZERO); } - if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) { - s.setComeAllMoney("0.00"); + String comeAllMoney = s.getComeAllMoney(); + if (org.apache.commons.lang3.StringUtils.isBlank(comeAllMoney)) { + s.setComeAllMoney(CommonConstant.ZERO); } - if (s.getMoneyRate() == null || s.getMoneyRate().equals("")) { + String confirmAmount = s.getConfirmAmount(); + if (org.apache.commons.lang3.StringUtils.isBlank(confirmAmount)) { + s.setConfirmAmount(CommonConstant.ZERO); + } + String billMoney = s.getBillMoney(); + if (StringUtils.isBlank(billMoney)) { + s.setBillMoney(CommonConstant.ZERO); + } + String moneyRate = s.getMoneyRate(); + if (StringUtils.isBlank(moneyRate)) { s.setMoneyRate("0.00%"); } } @@ -151,10 +163,10 @@ public class PayWorkingGroupStatisticsController { } for (PayWorkGroupSubletStatistics s : pageList.getRecords()) { if (s.getAllMoney() == null || s.getAllMoney().equals("")) { - s.setAllMoney("0.0"); + s.setAllMoney(CommonConstant.ZERO); } if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) { - s.setComeAllMoney("0.0"); + s.setComeAllMoney(CommonConstant.ZERO); } } hashMap.put("pageList", pageList); @@ -183,11 +195,22 @@ public class PayWorkingGroupStatisticsController { List pageList = payWorkingGroupSubItemService.importExcelStatistics(payWorkingGroupSubletSearch, id); //处理为空数据为0 for (PayWorkGroupSubletStatistics s : pageList) { - if (s.getAllMoney() == null || s.getAllMoney().equals("")) { - s.setAllMoney("0.00"); + //处理为空数据为0 + String allMoney = s.getAllMoney(); + if (org.apache.commons.lang3.StringUtils.isBlank(allMoney)) { + s.setAllMoney(CommonConstant.ZERO); } - if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) { - s.setComeAllMoney("0.00"); + String comeAllMoney = s.getComeAllMoney(); + if (org.apache.commons.lang3.StringUtils.isBlank(comeAllMoney)) { + s.setComeAllMoney(CommonConstant.ZERO); + } + String confirmAmount = s.getConfirmAmount(); + if (org.apache.commons.lang3.StringUtils.isBlank(confirmAmount)) { + s.setConfirmAmount(CommonConstant.ZERO); + } + String billMoney = s.getBillMoney(); + if (StringUtils.isBlank(billMoney)) { + s.setBillMoney(CommonConstant.ZERO); } } return AmountUtil.exportListXls(pageList, PayWorkGroupSubletStatistics.class, "工作组成员统计"); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/PrincipalPeopleStatisticsController.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/PrincipalPeopleStatisticsController.java index 9f9d333a..887078bb 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/PrincipalPeopleStatisticsController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/PrincipalPeopleStatisticsController.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.constant.CommonConstant; import com.jero.common.constant.enums.LoginType; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.vo.LoginUser; @@ -19,6 +20,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; @@ -200,11 +202,22 @@ public class PrincipalPeopleStatisticsController { List pageList = payWorkingGroupService.queryPageListForPrincipalExcel(principalPeopleSearch, idList); //处理为空数据为0 for (PrincipalPeopleList s : pageList) { - if (s.getAllMoney() == null || s.getAllMoney().equals("")) { - s.setAllMoney("0.00"); + //处理为空数据为0 + String allMoney = s.getAllMoney(); + if (org.apache.commons.lang3.StringUtils.isBlank(allMoney)) { + s.setAllMoney(CommonConstant.ZERO); } - if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) { - s.setComeAllMoney("0.00"); + String comeAllMoney = s.getComeAllMoney(); + if (org.apache.commons.lang3.StringUtils.isBlank(comeAllMoney)) { + s.setComeAllMoney(CommonConstant.ZERO); + } + String confirmAmount = s.getConfirmAmount(); + if (org.apache.commons.lang3.StringUtils.isBlank(confirmAmount)) { + s.setConfirmAmount(CommonConstant.ZERO); + } + String billMoney = s.getBillMoney(); + if (StringUtils.isBlank(billMoney)) { + s.setBillMoney(CommonConstant.ZERO); } if (s.getFinishRate() == null || s.getFinishRate().equals("")) { s.setFinishRate("0.00%"); @@ -232,11 +245,22 @@ public class PrincipalPeopleStatisticsController { String key = String.valueOf(s.getChargeUse()); String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key); s.setChargeUse_text(payment_charge_use); - if (s.getAllMoney() == null || s.getAllMoney().equals("")) { - s.setAllMoney("0.00"); + //处理为空数据为0 + String allMoney = s.getAllMoney(); + if (org.apache.commons.lang3.StringUtils.isBlank(allMoney)) { + s.setAllMoney(CommonConstant.ZERO); } - if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) { - s.setComeAllMoney("0.00"); + String comeAllMoney = s.getComeAllMoney(); + if (org.apache.commons.lang3.StringUtils.isBlank(comeAllMoney)) { + s.setComeAllMoney(CommonConstant.ZERO); + } + String confirmAmount = s.getConfirmAmount(); + if (org.apache.commons.lang3.StringUtils.isBlank(confirmAmount)) { + s.setConfirmAmount(CommonConstant.ZERO); + } + String billMoney = s.getBillMoney(); + if (StringUtils.isBlank(billMoney)) { + s.setBillMoney(CommonConstant.ZERO); } } return AmountUtil.exportListXls(pageList, PrincipalPeopleDetail.class, "个人来款详情"); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/AllProjectMoneyExcel.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/AllProjectMoneyExcel.java index 0b4e9500..696cbf16 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/AllProjectMoneyExcel.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/AllProjectMoneyExcel.java @@ -15,7 +15,7 @@ import org.jeecgframework.poi.excel.annotation.Excel; @AllArgsConstructor public class AllProjectMoneyExcel { - @Excel(name = "合同",width=15,height=15) + @Excel(name = "",width=15,height=15) private String category; @Excel(name="1月",width=15,height=15) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneyClassificationList.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneyClassificationList.java new file mode 100644 index 00000000..ae803ea2 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneyClassificationList.java @@ -0,0 +1,28 @@ +package com.jero.statistics.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +/** + * @author zql + * @date 2021/9/23 14:09 + */ +@Data +public class CompanyComeMoneyClassificationList { + + @ApiModelProperty(value = "企业id") + private String companyId; + + @ApiModelProperty(value = "企业名称") + private String companyName; + + @ApiModelProperty(value = "年度待确收金额") + private String allMoney; + + @ApiModelProperty(value = "年份") + private String year; + + @ApiModelProperty(value = "来款用途") + private String chargeUse; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneyDetail.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneyDetail.java index 11633b1a..60e1e8b0 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneyDetail.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneyDetail.java @@ -18,12 +18,16 @@ public class CompanyComeMoneyDetail { @ApiModelProperty(value = "来款项目") private String projectName; - @Excel(name = "年度待确收金额", width = 15) + @Excel(name = "来款企业", width = 15) @ApiModelProperty(value = "来款企业") private String chargeCompanyName; - @Excel(name = "合同金额", width = 15) - @ApiModelProperty(value = "合同金额") + @Excel(name = "是否打包") + @ApiModelProperty(value = "打包") + private String packText; + + @Excel(name = "年度待确收金额", width = 15) + @ApiModelProperty(value = "年度待确收金额") private String allMoney; @Excel(name = "确认收入金额", width = 15) @@ -44,9 +48,7 @@ public class CompanyComeMoneyDetail { @ApiModelProperty(value = "打包") private Integer pack; - @Excel(name = "打包") - @ApiModelProperty(value = "打包") - private String packText; + @Excel(name = "来款用途") @ApiModelProperty(value = "来款用途") diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneyDetailSearch.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneyDetailSearch.java index 6d6e83be..01f8931b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneyDetailSearch.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneyDetailSearch.java @@ -52,4 +52,7 @@ public class CompanyComeMoneyDetailSearch { @ApiModelProperty(value = "排序规则") private String order; + + @ApiModelProperty(value = "打包") + private String pack; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneySearch.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneySearch.java index 2055f662..6c07fada 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneySearch.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/CompanyComeMoneySearch.java @@ -24,6 +24,12 @@ public class CompanyComeMoneySearch { @ApiModelProperty(value = "来款年份") private String year; + @ApiModelProperty(value = "来款年份开始") + private String year_begin; + @ApiModelProperty(value = "来款年份结束") + private String year_end; + + private List years; @ApiModelProperty(value = "应收总金额") private String allMoney; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MeetingPackStatisticsSearch.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MeetingPackStatisticsSearch.java index e784b163..6e505e14 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MeetingPackStatisticsSearch.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MeetingPackStatisticsSearch.java @@ -15,8 +15,8 @@ public class MeetingPackStatisticsSearch implements Serializable { @ApiModelProperty(value = "来款单位") private String companyName; - @ApiModelProperty(value = "确认年份") - private String paymentYear; + @ApiModelProperty(value = "项目年份") + private String year; @ApiModelProperty(value = "来款方式(默认打包)") private String payMode; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/PrincipalPeopleDetail.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/PrincipalPeopleDetail.java index 3f5ebb4b..1005528f 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/PrincipalPeopleDetail.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/PrincipalPeopleDetail.java @@ -16,13 +16,20 @@ public class PrincipalPeopleDetail { @ApiModelProperty(value = "项目id") private String id; + @Excel(name = "来款项目", width = 15) + @ApiModelProperty(value = "来款项目") + private String projectName; + @Excel(name = "来款企业", width = 15) @ApiModelProperty(value = "来款企业") private String chargeCompanyTemporaryName; - @Excel(name = "来款项目", width = 15) - @ApiModelProperty(value = "来款项目") - private String projectName; + @ApiModelProperty(value = "打包") + private Integer pack; + + @Excel(name = "是否打包", width = 15) + @ApiModelProperty(value = "打包") + private String packText; @Excel(name = "年度待确收金额", width = 15) @ApiModelProperty(value = "合同金额") @@ -40,13 +47,6 @@ public class PrincipalPeopleDetail { @ApiModelProperty(value = "到账金额") private String comeAllMoney; - @ApiModelProperty(value = "打包") - private Integer pack; - - @Excel(name = "打包", width = 15) - @ApiModelProperty(value = "打包") - private String packText; - @ApiModelProperty(value = "来款用途编码") private String chargeUse; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/PrincipalPeopleDetailSearch.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/PrincipalPeopleDetailSearch.java index 9b310b31..dac48b9d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/PrincipalPeopleDetailSearch.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/PrincipalPeopleDetailSearch.java @@ -53,4 +53,7 @@ public class PrincipalPeopleDetailSearch { @ApiModelProperty(value = "排序规则") private String order; + @ApiModelProperty(value = "打包") + private String pack; + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/PrincipalPeopleList.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/PrincipalPeopleList.java index 8f508430..076888a1 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/PrincipalPeopleList.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/PrincipalPeopleList.java @@ -14,6 +14,10 @@ public class PrincipalPeopleList { @ApiModelProperty(value = "项目负责人id") private String principalId; + @Excel(name = "项目负责人", width = 15) + @ApiModelProperty(value = "项目负责人") + private String principalName; + @Excel(name = "年度待确收金额", width = 15) @DecimalMax(value = "9999999999.99",message = "合同金额(元)格式错误") @JsonFormat(shape = JsonFormat.Shape.STRING) @@ -38,7 +42,4 @@ public class PrincipalPeopleList { @ApiModelProperty(value = "个人完成率") private String finishRate; - @Excel(name = "项目负责人", width = 15) - @ApiModelProperty(value = "项目负责人") - private String principalName; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/controller/PayCompanyManagementTemporaryController.java b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/controller/PayCompanyManagementTemporaryController.java index 63d94e99..e4686deb 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/controller/PayCompanyManagementTemporaryController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/controller/PayCompanyManagementTemporaryController.java @@ -80,31 +80,7 @@ public class PayCompanyManagementTemporaryController extends JeroController delete(@RequestParam(name="id",required=true) String id) { - payCompanyManagementTemporaryService.removeById(id); - return Result.OK("删除成功!"); - } - - /** - * 批量删除 - * - * @param ids - * @return - */ - @ApiOperation(value="pay_company_management_temporary-批量删除", notes="pay_company_management_temporary-批量删除") -// @DeleteMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.payCompanyManagementTemporaryService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK("批量删除成功!"); - } + /** * 通过id查询 diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/controller/PayContactsManagementTemporaryController.java b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/controller/PayContactsManagementTemporaryController.java index e9cb68c7..78541d1d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/controller/PayContactsManagementTemporaryController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/controller/PayContactsManagementTemporaryController.java @@ -80,32 +80,6 @@ public class PayContactsManagementTemporaryController extends JeroController delete(@RequestParam(name="id",required=true) String id) { - payContactsManagementTemporaryService.removeById(id); - return Result.OK("删除成功!"); - } - - /** - * 批量删除 - * - * @param ids - * @return - */ - @ApiOperation(value="pay_contacts_management_temporary-批量删除", notes="pay_contacts_management_temporary-批量删除") -// @DeleteMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.payContactsManagementTemporaryService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK("批量删除成功!"); - } - /** * 通过id查询 * diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/entity/PayCompanyManagementTemporary.java b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/entity/PayCompanyManagementTemporary.java index af7c526d..c47431db 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/entity/PayCompanyManagementTemporary.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/entity/PayCompanyManagementTemporary.java @@ -64,6 +64,10 @@ public class PayCompanyManagementTemporary implements Serializable { @Excel(name = "银行账号", width = 15) @ApiModelProperty(value = "银行账号") private java.lang.String bankAccount; + /**联行号*/ + @Excel(name = "联行号", width = 15) + @ApiModelProperty(value = "联行号") + private String linkBankNumber; /**税号*/ @Excel(name = "税号", width = 15) @ApiModelProperty(value = "税号") @@ -101,4 +105,7 @@ public class PayCompanyManagementTemporary implements Serializable { @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "更新时间") private java.util.Date updateTime; + /**年份*/ + @ApiModelProperty(value = "数据锁定年份") + private String year; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/entity/PayContactsManagementTemporary.java b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/entity/PayContactsManagementTemporary.java index 5d47cb23..b294a456 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/entity/PayContactsManagementTemporary.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/entity/PayContactsManagementTemporary.java @@ -90,4 +90,7 @@ public class PayContactsManagementTemporary implements Serializable { @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "更新时间") private java.util.Date updateTime; + /**年份*/ + @ApiModelProperty(value = "数据锁定年份") + private String year; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/IPayCompanyManagementTemporaryService.java b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/IPayCompanyManagementTemporaryService.java index ffd7ac3c..34bffed6 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/IPayCompanyManagementTemporaryService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/IPayCompanyManagementTemporaryService.java @@ -2,8 +2,11 @@ package com.jero.temporary.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.project.entity.AnnualDataLocking; import com.jero.temporary.entity.PayCompanyManagementTemporary; +import java.util.List; + /** * @Description: pay_company_management_temporary * @Author: jeecg-boot @@ -20,5 +23,13 @@ public interface IPayCompanyManagementTemporaryService extends IService insertList(List companyIdList, String year); + + PayCompanyManagementTemporary getByAllTable(String companyId, String companyTemporaryId); + + PayCompanyManagementTemporary getById(String id); + + boolean removeById(String id); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/IPayContactsManagementTemporaryService.java b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/IPayContactsManagementTemporaryService.java index 8c3aa0b7..40a6c7b3 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/IPayContactsManagementTemporaryService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/IPayContactsManagementTemporaryService.java @@ -2,8 +2,11 @@ package com.jero.temporary.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.project.entity.AnnualDataLocking; import com.jero.temporary.entity.PayContactsManagementTemporary; +import java.util.List; + /** * @Description: pay_contacts_management_temporary * @Author: jeecg-boot @@ -20,6 +23,10 @@ public interface IPayContactsManagementTemporaryService extends IService insertList(List contactsIdList, String year); + + PayContactsManagementTemporary getByAllTable(String contactsId, String contactsTemporaryId); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/impl/PayCompanyManagementTemporaryServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/impl/PayCompanyManagementTemporaryServiceImpl.java index 53ddb947..c8752e11 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/impl/PayCompanyManagementTemporaryServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/impl/PayCompanyManagementTemporaryServiceImpl.java @@ -2,10 +2,12 @@ package com.jero.temporary.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.exception.JeroBootException; import com.jero.company.entity.PayCompanyManagement; import com.jero.company.service.IPayCompanyManagementService; +import com.jero.project.entity.AnnualDataLocking; import com.jero.temporary.common.PayCompanyManagementTemporaryCommon; import com.jero.temporary.entity.PayCompanyManagementTemporary; import com.jero.temporary.mapper.PayCompanyManagementTemporaryMapper; @@ -14,6 +16,8 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; /** @@ -31,7 +35,7 @@ public class PayCompanyManagementTemporaryServiceImpl extends ServiceImpl insertList(List companyIdList, String year) { + List temporaryList = new ArrayList<>(); + List payCompanyManagements = payCompanyManagementService.listByIds(companyIdList); + for (PayCompanyManagement payCompanyManagement : payCompanyManagements) { + // 企业管理表 + if (Objects.equals(payCompanyManagement.getStatus(), PayCompanyManagementTemporaryCommon.STATUS2)) { + payCompanyManagement.setCompanyName(payCompanyManagement.getCompanyName() + PayCompanyManagementTemporaryCommon.CHECK); + } + String str = JSONObject.toJSONString(payCompanyManagement); + PayCompanyManagementTemporary temporary = JSON.parseObject(str, PayCompanyManagementTemporary.class); + temporary.setCompanyId(temporary.getId()); + temporary.setCreateBy(null); + temporary.setCreateTime(null); + temporary.setUpdateBy(null); + temporary.setUpdateTime(null); + temporary.setId(null); + temporary.setYear(year); + temporaryList.add(temporary); + } + this.saveBatch(temporaryList); + return temporaryList; + } + + @Override + public PayCompanyManagementTemporary getByAllTable(String companyId, String companyTemporaryId) { + PayCompanyManagementTemporary temporary = new PayCompanyManagementTemporary(); + // 如果企业临时id和企业id相同,就查询企业表否则查询企业临时表 + if (StringUtils.isNotBlank(companyTemporaryId) && Objects.equals(companyId,companyTemporaryId)){ + PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(companyId); + if(Objects.equals(payCompanyManagement.getStatus(), PayCompanyManagementTemporaryCommon.STATUS2)){ + payCompanyManagement.setCompanyName(payCompanyManagement.getCompanyName() + PayCompanyManagementTemporaryCommon.CHECK); + } + String str = JSONObject.toJSONString(payCompanyManagement); + temporary = JSON.parseObject(str, PayCompanyManagementTemporary.class); + }else { + temporary = this.getById(companyTemporaryId); + if (temporary == null){ + PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(companyId); + if(Objects.equals(payCompanyManagement.getStatus(), PayCompanyManagementTemporaryCommon.STATUS2)){ + payCompanyManagement.setCompanyName(payCompanyManagement.getCompanyName() + PayCompanyManagementTemporaryCommon.CHECK); + } + String str = JSONObject.toJSONString(payCompanyManagement); + temporary = JSON.parseObject(str, PayCompanyManagementTemporary.class); + } + } + return temporary; + } + + @Override + public PayCompanyManagementTemporary getById(String id) { + PayCompanyManagementTemporary temporary; + temporary = baseMapper.selectById(id); + if (temporary == null){ + PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(id); + if (payCompanyManagement == null){ + return null; + } + if(Objects.equals(payCompanyManagement.getStatus(), PayCompanyManagementTemporaryCommon.STATUS2)){ + payCompanyManagement.setCompanyName(payCompanyManagement.getCompanyName() + PayCompanyManagementTemporaryCommon.CHECK); + } + String str = JSONObject.toJSONString(payCompanyManagement); + temporary = JSON.parseObject(str, PayCompanyManagementTemporary.class); + } + return temporary; + } + + @Override + public boolean removeById(String id) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayCompanyManagementTemporary::getId, id) + .isNull(PayCompanyManagementTemporary::getYear); + return baseMapper.delete(wrapper) > 0; + } + + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/impl/PayContactsManagementTemporaryServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/impl/PayContactsManagementTemporaryServiceImpl.java index ee83c5a8..94070164 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/impl/PayContactsManagementTemporaryServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/temporary/service/impl/PayContactsManagementTemporaryServiceImpl.java @@ -6,14 +6,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.exception.JeroBootException; import com.jero.company.entity.PayContactsManagement; import com.jero.company.service.IPayContactsManagementService; +import com.jero.project.entity.AnnualDataLocking; import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.mapper.PayContactsManagementTemporaryMapper; import com.jero.temporary.service.IPayContactsManagementTemporaryService; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; /** @@ -32,7 +34,7 @@ public class PayContactsManagementTemporaryServiceImpl extends ServiceImpl insertList(List contactsIdList, String year) { + List temporaryList = new ArrayList<>(); + List payContactsManagements = payContactsManagementService.listByIds(contactsIdList); + for (PayContactsManagement payContactsManagement : payContactsManagements) { + String str = JSONObject.toJSONString(payContactsManagement); + PayContactsManagementTemporary temporary = JSON.parseObject(str,PayContactsManagementTemporary.class); + temporary.setContactId(temporary.getId()); + temporary.setId(null); + temporary.setCreateBy(null); + temporary.setCreateTime(null); + temporary.setUpdateBy(null); + temporary.setUpdateTime(null); + temporary.setYear(year); + temporaryList.add(temporary); + } + this.saveBatch(temporaryList); + return temporaryList; + } + + @Override + public PayContactsManagementTemporary getByAllTable(String contactsId, String contactsTemporaryId) { + PayContactsManagementTemporary temporary = new PayContactsManagementTemporary(); + // 如果企业临时id和企业id相同,就查询企业表否则查询企业临时表 + if (StringUtils.isNotBlank(contactsTemporaryId) && Objects.equals(contactsId,contactsTemporaryId)){ + PayContactsManagement contactsManagement = payContactsManagementService.getById(contactsId); + String str = JSONObject.toJSONString(contactsManagement); + temporary = JSON.parseObject(str, PayContactsManagementTemporary.class); + }else { + temporary = this.getById(contactsTemporaryId); + if (temporary == null){ + PayContactsManagement contactsManagement = payContactsManagementService.getById(contactsId); + String str = JSONObject.toJSONString(contactsManagement); + temporary = JSON.parseObject(str, PayContactsManagementTemporary.class); + } + } + return temporary; + } } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysUserMapper.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysUserMapper.java index 0b3dd6b8..4f5d78bd 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysUserMapper.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysUserMapper.java @@ -102,6 +102,14 @@ public interface SysUserMapper extends BaseMapper { * @return */ List getUserByOrgCode(IPage page, @Param("orgCode") String orgCode, @Param("userParams") SysUser userParams); +/** + * 根据 orgCode 查询用户,包括子部门下的用户 + * + * @param orgCode + * @param userParams 用户查询条件,可为空 + * @return + */ + List getUserByOrgCode(@Param("orgCode") String orgCode, @Param("userParams") SysUser userParams); /** @@ -171,4 +179,5 @@ public interface SysUserMapper extends BaseMapper { void forgetPassword(@Param("user") SysUser user); + List listUserByOrgCode(@Param("orgCode") String orgCode, @Param("userParams") SysUser userParams); } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml b/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml index 79e6adee..69b32cd9 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml @@ -217,4 +217,12 @@ select * from pay_manager_management where phone = #{username} and del_flag = 0; + + \ No newline at end of file diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index 1b214713..c1b5f17b 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -140,6 +140,8 @@ public interface ISysUserService extends IService { */ IPage queryUserByOrgCode(String orgCode, SysUser userParams, IPage page); + List listUserByOrgCode(String orgCode); + /** * 根据角色Id查询 * @param diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java index 2ce27d49..2de2d0eb 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java @@ -158,7 +158,17 @@ public class SysBaseApiImpl implements ISysBaseAPI { @Override public String translateDictFromTable(String table, String text, String code, String key) { - return sysDictService.queryTableDictTextByKey(table, text, code, key); + String s = sysDictService.queryTableDictTextByKey(table, text, code, key); + if ("pay_company_management_temporary".equals(table)){ + if (StringUtils.isBlank(s)){ + s = sysDictService.queryTableDictTextByKey("pay_company_management", text, code, key); + } + }else if ("pay_contacts_management_temporary".equals(table)){ + if (StringUtils.isBlank(s)){ + s = sysDictService.queryTableDictTextByKey("pay_contacts_management", text, code, key); + } + } + return s; } @Override @@ -329,7 +339,13 @@ public class SysBaseApiImpl implements ISysBaseAPI { table = QueryGenerator.getSqlRuleValue(table); } //update-end-author:taoyan date:20200820 for:【Online+系统】字典表加权限控制机制逻辑,想法不错 LOWCOD-799 - return sysDictService.queryTableDictItemsByCode(table, text, code); + List dictModels = sysDictService.queryTableDictItemsByCode(table, text, code); + if ("pay_company_management_temporary".equals(table)){ + dictModels.addAll(sysDictService.queryTableDictItemsByCode("pay_company_management", text, code)); + }else if ("pay_contacts_management_temporary".equals(table)){ + dictModels.addAll(sysDictService.queryTableDictItemsByCode("pay_contacts_management", text, code)); + } + return dictModels; } @Override diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index 3e445400..ab7e8e66 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -331,6 +331,13 @@ public class SysUserServiceImpl extends ServiceImpl impl return result; } + @Override + public List listUserByOrgCode(String orgCode) { + List list = baseMapper.listUserByOrgCode(orgCode, null); + + return list; + } + // 根据角色Id查询 @Override public IPage getUserByRoleId(Page page, String roleId, String username) { diff --git a/jero-boot-single-startup/src/main/resources/application-dev.yml b/jero-boot-single-startup/src/main/resources/application-dev.yml index 7be23548..61e50750 100644 --- a/jero-boot-single-startup/src/main/resources/application-dev.yml +++ b/jero-boot-single-startup/src/main/resources/application-dev.yml @@ -22,8 +22,8 @@ management: spring: servlet: multipart: - max-file-size: 50MB - max-request-size: 50MB + max-file-size: 200MB + max-request-size: 200MB mail: host: smtp.qq.com # host: smtp.126.com @@ -141,7 +141,7 @@ spring: # username: root # password: hzwlsoft.com # driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:p6spy:mysql://lijiarao.cn:3306/income_payments_prod?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai + url: jdbc:p6spy:mysql://lijiarao.cn:3306/income_payments_prod?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true username: root password: 704670af746903fa driver-class-name: com.p6spy.engine.spy.P6SpyDriver @@ -361,4 +361,6 @@ template: #批复文件pdf pdf: D:\\hzwl\\income_payments\\income_payments_managerment\\template\\approvalTemplate.pdf #入会申请表word - applicationWord: E:\\biao_zhun_suo\\template\\applicationWord.docx \ No newline at end of file + applicationWord: E:\\biao_zhun_suo\\template\\applicationWord.docx + #模版目录 + templatePath: D:\\hzwl\\income_payments\\income_payments_managerment\\template\\ \ No newline at end of file diff --git a/template/企业来款分类统计导出模板.xlsx b/template/企业来款分类统计导出模板.xlsx new file mode 100644 index 00000000..3a24478b Binary files /dev/null and b/template/企业来款分类统计导出模板.xlsx differ