Merge branch '24年二季度其他'

# Conflicts:
#	db/统计视图(新).sql
This commit is contained in:
lijiarao
2024-08-05 15:00:49 +08:00
127 changed files with 5466 additions and 1297 deletions
+122
View File
@@ -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 ('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 ('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); 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;
+40 -4
View File
@@ -203,7 +203,7 @@ from (SELECT pwgs.id,
vcpr.no_tax_amount as confirmNoTaxAmount, vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName, liaison_man as contactsName,
vcpr.payment_date as confirmDate, vcpr.payment_date as confirmDate,
null as estimatedArrivalDate, estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime tmps.create_time as createTime
FROM tb_member_project tmp FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id) 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, vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName, liaison_man as contactsName,
vcpr.payment_date as confirmDate, vcpr.payment_date as confirmDate,
null as estimatedArrivalDate, estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime tmps.create_time as createTime
FROM tb_member_project tmp FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id) left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
@@ -826,6 +826,7 @@ SELECT
end meeting_costs_b, end meeting_costs_b,
p2.meeting_name, p2.meeting_name,
p2.meeting_type, 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 ( SELECT DATE_FORMAT( payment_date, '%Y' ) FROM pay_confirm_payment_record p3 WHERE p3.project_id = p1.id LIMIT 1 ) AS payment_year
FROM FROM
pay_meeting_situation p1 pay_meeting_situation p1
@@ -1073,7 +1074,7 @@ from (SELECT pwgs.id,
vcpr.no_tax_amount as confirmNoTaxAmount, vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName, liaison_man as contactsName,
vcpr.payment_date as confirmDate, vcpr.payment_date as confirmDate,
null as estimatedArrivalDate, estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime tmps.create_time as createTime
FROM tb_member_project tmp FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id) 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, vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName, liaison_man as contactsName,
vcpr.payment_date as confirmDate, vcpr.payment_date as confirmDate,
null as estimatedArrivalDate, estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime tmps.create_time as createTime
FROM tb_member_project tmp FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id) left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
@@ -1567,6 +1568,40 @@ from (
and (pack = 0 or year < 2024) and (pack = 0 or year < 2024)
group by pwgs.id group by pwgs.id
union all 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, SELECT pcp.id,
pcp.id as superId, pcp.id as superId,
pcp.charge_project AS projectName, pcp.charge_project AS projectName,
@@ -1598,6 +1633,7 @@ from (
left join sys_depart sd on (su.depart_ids = sd.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 left join pay_confirm_payment_record pcpr on pcp.id = pcpr.project_id
where (pack = 0 or year < 2024) where (pack = 0 or year < 2024)
and charge_way != 2
group by pcp.id group by pcp.id
union all union all
SELECT pmps.id, SELECT pmps.id,
@@ -309,4 +309,6 @@ public interface CommonConstant {
* 第三方登录 验证密码/创建用户 都需要设置一个操作码 防止被恶意调用 * 第三方登录 验证密码/创建用户 都需要设置一个操作码 防止被恶意调用
*/ */
public final static String THIRD_LOGIN_CODE = "third_login_code"; public final static String THIRD_LOGIN_CODE = "third_login_code";
public final static String ZERO = "0.00";
} }
@@ -46,6 +46,13 @@ public class StaticConfig {
StaticConfig.needPassword = needPassword; StaticConfig.needPassword = needPassword;
} }
public static String TEMPLATE_PATH;
@Value("${template.path.templatePath}")
public void setTemplatePath(String templatePath) {
StaticConfig.TEMPLATE_PATH = templatePath;
}
/*@Bean /*@Bean
public void initStatic() { public void initStatic() {
@@ -140,7 +140,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/sys/oss/file/queryById","anon");//通过id查询文件 filterChainDefinitionMap.put("/sys/oss/file/queryById","anon");//通过id查询文件
filterChainDefinitionMap.put("/meeting/internalMeetingSituation/checkMember","anon");//校验是否为会员单位 filterChainDefinitionMap.put("/meeting/internalMeetingSituation/checkMember","anon");//校验是否为会员单位
filterChainDefinitionMap.put("/meeting/internalMeeting/getLinkTopics","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"); filterChainDefinitionMap.put("/member/tbMemberProjectSubitem/enableMemberByCompanyName", "anon");
//门户端-分页查询所有会员名称 //门户端-分页查询所有会员名称
@@ -1,5 +1,6 @@
package com.jero.common.mapper; package com.jero.common.mapper;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayCommonProject;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@@ -12,7 +13,7 @@ public interface ProjectDetailMapper {
* @Return * @Return
* @Exception * @Exception
*/ */
PayCommonProject queryProject(String projectId); PayCommonProject queryProject(@Param("projectId") String projectId);
/** /**
* @Description 查询项目列表信息 * @Description 查询项目列表信息
@@ -4,8 +4,41 @@
<select id="queryProject" resultType="com.jero.project.entity.PayCommonProject"> <select id="queryProject" resultType="com.jero.project.entity.PayCommonProject">
<!-- 普通项目--> <!-- 普通项目-->
select c.id,c.charge_project, 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,'' as phone,'' as email,c.remarks,c.contract_num,c.charge_company_temporary_id,c.charge_way,c.files,c.charge_notice_no,c.charge_notice_id,c.year,c.mail_contacts_temporary_name,'' as mission_and_objectives select c.id as id,
,c.tax_rate,c.tax,c.no_tax_amount,c.affirm_income c.charge_project as charge_project,
c.charge_use as charge_use,
c.principal_id as principal_id,
su.realname as principal_name,
c.contacts_id as contacts_id,
c.contacts_temporary_id as contacts_temporary_id,
c.contacts_temporary_name as contacts_temporary_name,
c.charge_company_id as charge_company_id,
c.charge_company_temporary_id as charge_company_temporary_id,
c.charge_company_temporary_name as charge_company_temporary_name,
c.receivable_amount as receivable_amount,
c.paid_amount as paid_amount,
c.need_invoice as need_invoice,
c.pack as pack,
c.in_account as in_account,
c.make_invoice as make_invoice,
c.mail as mail,
c.create_time as create_time,
1 as projectType,
'' as phone,
'' as email,
c.remarks as remarks,
c.contract_num as contract_num,
c.charge_way as charge_way,
c.files as files,
c.charge_notice_no as charge_notice_no,
c.charge_notice_id as charge_notice_id,
c.year as year,
c.mail_contacts_temporary_name as mail_contacts_temporary_name,
'' as mission_and_objectives,
c.tax_rate as tax_rate,
c.tax as tax,
c.no_tax_amount as no_tax_amount,
c.affirm_income as affirm_income
from pay_common_project c from pay_common_project c
left join sys_user su on c.principal_id = su.id left join sys_user su on c.principal_id = su.id
<where> <where>
@@ -15,164 +48,365 @@
</where> </where>
<!--工作组项目--> <!--工作组项目-->
UNION ALL UNION ALL
select gsub.id,g.working_group_project, gsub.charge_use, g.principal_id_a,su.realname,gsub.contacts_temporary_id_one,gsub.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,'','',gsub.remarks,gsub.contract_num,gsub.charge_company_temporary_id,gsub.charge_way,'',gsub.charge_notice_no,gsub.charge_notice_id,g.year,gsub.mail_contacts_temporary_name,g.mission_and_objectives select c.id as id,
,gsub.tax_rate,gsub.tax,gsub.no_tax_amount,affirm_income g.working_group_project as charge_project,
c.charge_use as charge_use,
g.principal_id_a as principal_id,
su.realname as principal_name,
c.contacts_id_one as contacts_id,
c.contacts_temporary_id_one as contacts_temporary_id,
c.contacts_temporary_name_one as contacts_temporary_name,
c.charge_company_id as charge_company_id,
c.charge_company_temporary_id as charge_company_temporary_id,
c.charge_company_temporary_name as charge_company_temporary_name,
c.receivable_amount as receivable_amount,
c.paid_amount as paid_amount,
c.need_invoice as need_invoice,
c.pack as pack,
c.in_account as in_account,
c.make_invoice as make_invoice,
c.mail as mail,
c.create_time as create_time,
2 as projectType,
'' as phone,
'' as email,
c.remarks as remarks,
c.contract_num as contract_num,
c.charge_way as charge_way,
'' as files,
c.charge_notice_no as charge_notice_no,
c.charge_notice_id as charge_notice_id,
g.year as year,
c.mail_contacts_temporary_name as mail_contacts_temporary_name,
g.mission_and_objectives as mission_and_objectives,
c.tax_rate as tax_rate,
c.tax as tax,
c.no_tax_amount as no_tax_amount,
affirm_income
from pay_working_group g from pay_working_group g
left join sys_user su on g.principal_id_a = su.id 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 inner join pay_working_group_subitem c on g.id = c.working_group_id
<where> <where>
<if test="projectId != null and projectId != ''"> <if test="projectId != null and projectId != ''">
AND gsub.id = #{projectId} AND c.id = #{projectId}
</if> </if>
</where> </where>
<!-- 会议项目--> <!-- 会议项目-->
UNION ALL UNION ALL
select sit.id,meeting.meeting_name,sit.charge_use, meeting.director_id, su.realname,sit.company_contact_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,'','',sit.remark,'',sit.company_id,sit.pay_mode,'','','','','','' select c.id as id,
,sit.tax_rate,sit.tax,sit.no_tax_amount,affirm_income meeting.meeting_name as charge_project,
c.charge_use as charge_use,
meeting.director_id as principal_id,
su.realname as principal_name,
c.company_contact_id as contacts_id,
c.company_contact_temporary_id as contacts_temporary_id,
c.company_contact_name as contacts_temporary_name,
c.company_id as charge_company_id,
c.company_temporary_id as charge_company_temporary_id,
c.company_name as charge_company_temporary_name,
c.amount_receivable as receivable_amount,
c.paid_amount as paid_amount,
c.need_invoice as need_invoice,
c.pack as pack,
c.in_account as in_account,
c.make_invoice as make_invoice,
c.mail as mail,
c.create_time as create_time,
3 as projectType,
'' as phone,
'' as email,
c.remark as remarks,
'' as contract_num,
c.pay_mode as charge_way,
'' as files,
'' as charge_notice_no,
'' as charge_notice_id,
'' as year,
'' as mail_contacts_temporary_name,
'' as mission_and_objectives,
c.tax_rate as tax_rate,
c.tax as tax,
c.no_tax_amount as no_tax_amount,
affirm_income
from pay_meeting meeting from pay_meeting meeting
left join sys_user su on meeting.director_id = su.id left join sys_user su on meeting.director_id = su.id
inner join pay_meeting_situation sit on meeting.id = sit.meeting_id inner join pay_meeting_situation c on meeting.id = c.meeting_id
<where> <where>
<if test="projectId != null and projectId != ''"> <if test="projectId != null and projectId != ''">
AND sit.id = #{projectId} AND c.id = #{projectId}
</if> </if>
</where> </where>
<!-- 会员项目--> <!-- 会员项目-->
UNION ALL UNION ALL
select msub.id,pmp.project_name,msub.charge_use,pmp.director_id,su.realname,msub.company_contact_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,'','',msub.remark,msub.contract_no as contract_num,msub.company_temporary_id,msub.payment_method,'',msub.charge_notice_no,msub.charge_notice_file_id,pmp.particular_year,msub.post_contact_name,'' select c.id as id,
,msub.tax_rate,msub.tax,msub.no_tax_amount,affirm_income pmp.project_name as charge_project,
c.charge_use as charge_use,
pmp.director_id as principal_id,
su.realname as principal_name,
c.company_contact_id as contacts_id,
c.company_contact_temporary_id as contacts_temporary_id,
c.company_contact_name as contacts_temporary_name,
c.company_id as charge_company_id,
c.company_temporary_id as charge_company_temporary_id,
c.company_name as charge_company_temporary_name,
c.amount_receivable as receivable_amount,
c.paid_amount as paid_amount,
c.need_invoice as need_invoice,
c.pack as pack,
c.in_account as in_account,
c.make_invoice as make_invoice,
c.mail as mail,
c.create_time as create_time,
4 as projectType,
'' as phone,
'' as email,
c.remark as remarks,
c.contract_no as contract_num,
c.payment_method as charge_way,
'' as files,
c.charge_notice_no as charge_notice_no,
c.charge_notice_file_id as charge_notice_id,
pmp.particular_year as year,
c.post_contact_name as mail_contacts_temporary_name,
'' as mission_and_objectives,
c.tax_rate as tax_rate,
c.tax as tax,
c.no_tax_amount as no_tax_amount,
affirm_income
from pay_member_project pmp from pay_member_project pmp
left join sys_user su on pmp.director_id = su.id left join sys_user su on pmp.director_id = su.id
inner join pay_member_project_subitem msub on pmp.id = msub.project_id inner join pay_member_project_subitem c on pmp.id = c.project_id
<where> <where>
<if test="projectId != null and projectId != ''"> <if test="projectId != null and projectId != ''">
AND msub.id = #{projectId} AND c.id = #{projectId}
</if> </if>
</where> </where>
<!-- 标协会员项目--> <!-- 标协会员项目-->
UNION ALL UNION ALL
select tmsub.id,tmember.project_name,tmsub.charge_use,tmember.director_id,su.realname,tmsub.liaison_man_id,tmsub.liaison_man,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,tmsub.mobile,tmsub.email,tmsub.remark,pic.contract_num,tmsub.company_id,tmsub.payment_method,'',tmsub.charge_notice_no,tmsub.charge_notice_id,tmember.year,'','' select c.id as id,
,tmsub.tax_rate,tmsub.tax,tmsub.no_tax_amount,affirm_income tmember.project_name as charge_project,
c.charge_use as charge_use,
tmember.director_id as principal_id,
su.realname as principal_name,
c.liaison_man_id as contacts_id,
c.company_contact_temporary_id as contacts_temporary_id,
c.liaison_man as contacts_temporary_name,
c.company_id as charge_company_id,
c.company_temporary_id as charge_company_temporary_id,
c.company_name as charge_company_temporary_name,
c.amount_receivable as receivable_amount,
c.paid_amount as paid_amount,
c.invoice_requirements as need_invoice,
c.pack as pack,
c.in_account as in_account,
c.make_invoice as make_invoice,
c.mail as mail,
c.create_time as create_time,
5 as projectType,
c.mobile as phone,
c.email as email,
c.remark as remarks,
pic.contract_num as contract_num,
c.payment_method as charge_way,
'' as files,
c.charge_notice_no as charge_notice_no,
c.charge_notice_id as charge_notice_id,
tmember.year as year,
'' as mail_contacts_temporary_name,
'' as mission_and_objectives,
c.tax_rate as tax_rate,
c.tax as tax,
c.no_tax_amount as no_tax_amount,
affirm_income
from tb_member_project tmember from tb_member_project tmember
left join sys_user su on tmember.director_id = su.id left join sys_user su on tmember.director_id = su.id
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id inner join tb_member_project_subitem c on tmember.id=c.project_id
left join pay_income_contract_associated pica on pica.project_id=tmsub.id left join pay_income_contract_associated pica on pica.project_id=c.id
left join pay_income_contract pic on pica.contract_id = pic.id left join pay_income_contract pic on pica.contract_id = pic.id
<where> <where>
<if test="projectId != null and projectId != ''"> <if test="projectId != null and projectId != ''">
AND tmsub.id = #{projectId} AND c.id = #{projectId}
</if> </if>
</where> </where>
<!-- 标协会员证书项目--> <!-- 标协会员证书项目-->
UNION ALL UNION ALL
select tmps.id,tmember.project_name,tmps.charge_use,tmember.director_id,su.realname,tmps.liaison_man_id,tmps.liaison_man,tmps.company_name,tmps.amount_receivable,tmps.paid_amount,tmps.invoice_requirements,tmps.pack,tmps.in_account,tmps.make_invoice,tmps.mail,tmps.create_time,5,tmps.mobile,tmps.email,'','',tmps.company_id,tmps.payment_method,'','','',tmember.year,'','' select c.id as id,
,tmps.tax_rate,tmps.tax,tmps.no_tax_amount,affirm_income tmember.project_name as charge_project,
c.charge_use as charge_use,
tmember.director_id as principal_id,
su.realname as principal_name,
c.liaison_man_id as contacts_id,
c.liaison_man_id as contacts_temporary_id,
c.liaison_man as contacts_temporary_name,
c.company_id as charge_company_id,
c.company_id as charge_company_temporary_id,
c.company_name as charge_company_temporary_name,
c.amount_receivable as receivable_amount,
c.paid_amount as paid_amount,
c.invoice_requirements as need_invoice,
c.pack as pack,
c.in_account as in_account,
c.make_invoice as make_invoice,
c.mail as mail,
c.create_time as create_time,
5 as projectType,
c.mobile as phone,
c.email as email,
'' as remarks,
'' as contract_num,
c.payment_method as charge_way,
'' as files,
'' as charge_notice_no,
'' as charge_notice_id,
tmember.year as year,
'' as mail_contacts_temporary_name,
'' as mission_and_objectives,
c.tax_rate as tax_rate,
c.tax as tax,
c.no_tax_amount as no_tax_amount,
affirm_income
from tb_member_project tmember from tb_member_project tmember
left join sys_user su on tmember.director_id = su.id left join sys_user su on tmember.director_id = su.id
inner join tb_certificate_payment tmps on tmember.id=tmps.project_id inner join tb_certificate_payment c on tmember.id=c.project_id
<where> <where>
<if test="projectId != null and projectId != ''"> <if test="projectId != null and projectId != ''">
AND tmps.id = #{projectId} AND c.id = #{projectId}
</if> </if>
</where> </where>
UNION ALL UNION ALL
SELECT SELECT
gsub.id, c.id as id,
g.drafting_group_project, g.drafting_group_project as charge_project,
'', '' as charge_use,
g.principal_id_a, g.principal_id_a as principal_id,
su.realname, su.realname as principal_name,
gsub.contacts_temporary_id_one, c.contacts_id_one as contacts_id,
gsub.contacts_temporary_name_one, c.contacts_temporary_id_one as contacts_temporary_id,
gsub.charge_company_temporary_name, c.contacts_temporary_name_one as contacts_temporary_name,
'', c.charge_company_id as charge_company_id,
'', c.charge_company_temporary_id as charge_company_temporary_id,
'', c.charge_company_temporary_name as charge_company_temporary_name,
'', '' as receivable_amount,
'', '' as paid_amount,
'', '' as need_invoice,
'', '' as pack,
gsub.create_time, '' as in_account,
7, '' as make_invoice,
'', '' as mail,
'', c.create_time as create_time,
gsub.remarks, 7 as projectType,
'', '' as phone,
gsub.charge_company_temporary_id, '' as email,
'', c.remarks as remarks,
'', '' as contract_num,
'', '' as charge_way,
'', '' as files,
g.year, '' as charge_notice_no,
'', '' as charge_notice_id,
g.mission_and_objectives, g.year as year,
'', '' as mail_contacts_temporary_name,
'', g.mission_and_objectives as mission_and_objectives,
'', '' as tax_rate,
'' as tax,
'' as no_tax_amount,
'' ''
FROM FROM
pay_drafting_group g pay_drafting_group g
LEFT JOIN LEFT JOIN
sys_user su ON g.principal_id_a = su.id sys_user su ON g.principal_id_a = su.id
INNER JOIN INNER JOIN
pay_drafting_group_subitem gsub ON g.id = gsub.drafting_group_id pay_drafting_group_subitem c ON g.id = c.drafting_group_id
<where> <where>
<if test="projectId != null and projectId != ''"> <if test="projectId != null and projectId != ''">
AND gsub.id = #{projectId} AND c.id = #{projectId}
</if> </if>
</where> </where>
<!-- 打包项目--> <!-- 打包项目-->
UNION ALL UNION ALL
select ppc.id,ppc.company_temporary_name AS charge_project, 22 AS charge_use, ppc.pack_principal_id as principal_id,su.realname as principal_name,ppc.pack_contact_temporary_id as contacts_temporary_id, select c.id as id,
ppc.pack_contact_temporary_name,ppc.company_temporary_name as charge_company_temporary_name,ppc.receivable_amount,ppc.paid_amount,ppc.need_invoice,1 as pack,ppc.in_account,ppc.make_invoice,null as mail,ppc.create_time,8 as projectType,'' as phone,'' as email,'' as remarks,ppc.contract_num,ppc.company_temporary_id as charge_company_temporary_id,ppc.charge_way,null as files,ppc.charge_notice_no,ppc.charge_notice_id,null as year, null as mail_contacts_temporary_name,'' as mission_and_objectives c.company_temporary_name AS charge_project,
,ppc.tax_rate,ppc.tax,ppc.no_tax_amount,ppc.income_affirm AS affirm_income 22 AS charge_use,
from pay_pack_company ppc c.pack_principal_id as principal_id,
left join sys_user su on ppc.pack_principal_id = su.id su.realname as principal_name,
c.pack_contact_id as contacts_id,
c.pack_contact_temporary_id as contacts_temporary_id,
c.pack_contact_temporary_name as contacts_temporary_name,
c.company_id as charge_company_id,
c.company_temporary_id as charge_company_temporary_id,
c.company_temporary_name as charge_company_temporary_name,
c.receivable_amount as receivable_amount,
c.paid_amount as paid_amount,
c.need_invoice as need_invoice,
1 as pack,
c.in_account as in_account,
c.make_invoice as make_invoice,
null as mail,
c.create_time as create_time,
8 as projectType,
'' as phone,
'' as email,
'' as remarks,
c.contract_num as contract_num,
c.charge_way as charge_way,
null as files,
c.charge_notice_no as charge_notice_no,
c.charge_notice_id as charge_notice_id,
null as year,
null as mail_contacts_temporary_name,
'' as mission_and_objectives,
c.tax_rate as tax_rate,
c.tax as tax,
c.no_tax_amount as no_tax_amount,
c.income_affirm AS affirm_income
from pay_pack_company c
left join sys_user su on c.pack_principal_id = su.id
<where> <where>
<if test="projectId != null and projectId != ''"> <if test="projectId != null and projectId != ''">
AND ppc.id = #{projectId} AND c.id = #{projectId}
</if> </if>
</where> </where>
<!-- 功能安全中心项目--> <!-- 功能安全中心项目-->
UNION ALL UNION ALL
SELECT SELECT
pfsc.id, pfsc.id as id,
g.project_name, c.project_name as charge_project,
'', '' as charge_use,
g.principal_id, c.principal_id as principal_id,
su.realname, su.realname as principal_name,
'', '' as contacts_id,
'', '' as contacts_temporary_id,
'', '' as contacts_temporary_name,
'', pfsc.company_id as charge_company_id,
'', pfsc.company_id as charge_company_temporary_id,
'', '' as charge_company_temporary_name,
'', '' as receivable_amount,
'', '' as paid_amount,
'', '' as need_invoice,
'', '' as pack,
g.create_time, '' as in_account,
9, '' as make_invoice,
'', '' as mail,
'', c.create_time as create_time,
g.remarks, 9 as projectType,
'', '' as phone,
pfsc.company_id, '' as email,
'', c.remarks as remarks,
'', '' as contract_num,
'', '' as charge_way,
'', '' as files,
'', '' as charge_notice_no,
'', '' as charge_notice_id,
g.mission_and_objectives, '' as year,
'', '' as mail_contacts_temporary_name,
'', c.mission_and_objectives as mission_and_objectives,
'', '' as tax_rate,
'' as tax,
'' as no_tax_amount,
'' ''
FROM FROM
pay_functional_safety_center g pay_functional_safety_center c
LEFT JOIN sys_user su ON g.principal_id = su.id LEFT JOIN sys_user su ON c.principal_id = su.id
LEFT JOIN pay_functional_safety_center_subitem pfsc ON g.id = pfsc.project_id LEFT JOIN pay_functional_safety_center_subitem pfsc ON c.id = pfsc.project_id
<where> <where>
<if test="projectId != null and projectId != ''"> <if test="projectId != null and projectId != ''">
AND pfsc.id = #{projectId} AND pfsc.id = #{projectId}
@@ -221,27 +221,23 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
if(!Objects.isNull(payCommonProject.getPack())){ if(!Objects.isNull(payCommonProject.getPack())){
projectDetailVO.setPack_dictText(sysBaseAPI.translateDict("yn",String.valueOf(payCommonProject.getPack()))); projectDetailVO.setPack_dictText(sysBaseAPI.translateDict("yn",String.valueOf(payCommonProject.getPack())));
} }
// 标协会员和会议,直接查询企业,联系人 加功能安全中心 String contactsTemporaryId = payCommonProject.getContactsTemporaryId();
if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE5) String contactsId = payCommonProject.getContactsId();
|| Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE3) String chargeCompanyTemporaryId = payCommonProject.getChargeCompanyTemporaryId();
|| Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE9)){ String chargeCompanyId = payCommonProject.getChargeCompanyId();
PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(payCommonProject.getChargeCompanyTemporaryId());
if(Objects.isNull(payCompanyManagement)){ // 如果企业临时id和企业id相同,就查询企业表否则查询企业临时表
throw new JeroBootException("企业不存在!"); PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getByAllTable(chargeCompanyId,chargeCompanyTemporaryId);
} projectDetailVO.setCompanyName(payCompanyManagementTemporary.getCompanyName());
if(Objects.equals(payCompanyManagement.getStatus(), PayCompanyManagementTemporaryCommon.STATUS2)){ projectDetailVO.setCompanyPhone(PasswordUtil.decrypt(payCompanyManagementTemporary.getCompanyPhone()));
projectDetailVO.setCompanyName(payCompanyManagement.getCompanyName() + PayCompanyManagementTemporaryCommon.CHECK); projectDetailVO.setPostalCodeCompany(payCompanyManagementTemporary.getPostalCode());
}else{ projectDetailVO.setCompanyAddress(payCompanyManagementTemporary.getCompanyAddress());
projectDetailVO.setCompanyName(payCompanyManagement.getCompanyName()); projectDetailVO.setDutyCode(payCompanyManagementTemporary.getDutyCode());
} projectDetailVO.setBankAccountName(payCompanyManagementTemporary.getBankAccountName());
projectDetailVO.setCompanyPhone(PasswordUtil.decrypt(payCompanyManagement.getCompanyPhone())); projectDetailVO.setBankAccount(payCompanyManagementTemporary.getBankAccount());
projectDetailVO.setDutyCode(payCompanyManagement.getDutyCode()); projectDetailVO.setOpeningBank(payCompanyManagementTemporary.getOpeningBank());
projectDetailVO.setBankAccountName(payCompanyManagement.getBankAccountName()); projectDetailVO.setLinkBankNumber(payCompanyManagementTemporary.getLinkBankNumber());
projectDetailVO.setBankAccount(payCompanyManagement.getBankAccount());
projectDetailVO.setOpeningBank(payCompanyManagement.getOpeningBank());
projectDetailVO.setPostalCodeCompany(payCompanyManagement.getPostalCode());
projectDetailVO.setCompanyAddress(payCompanyManagement.getCompanyAddress());
projectDetailVO.setLinkBankNumber(payCompanyManagement.getLinkBankNumber());
//功能安全中心添加企业联系人 //功能安全中心添加企业联系人
if (Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE9)){ if (Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE9)){
List<SafetyCenterSubitemContacts> subitemContacts = safetyCenterSubitemContactsService.listBySubitemId(projectId); List<SafetyCenterSubitemContacts> subitemContacts = safetyCenterSubitemContactsService.listBySubitemId(projectId);
@@ -266,42 +262,9 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
listPayWorkingGroupSubItemContacts.add(p); listPayWorkingGroupSubItemContacts.add(p);
} }
projectDetailVO.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts); projectDetailVO.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts);
}else {
PayContactsManagement payContactsManagement = payContactsManagementService.getById(payCommonProject.getContactsTemporaryId());
if(Objects.isNull(payContactsManagement)){
throw new JeroBootException("联系人不存在!");
} }
projectDetailVO.setName(payContactsManagement.getName());
projectDetailVO.setGender(payContactsManagement.getGender());
if(!Objects.isNull(payContactsManagement.getGender())){
projectDetailVO.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(payContactsManagement.getGender())));
}
projectDetailVO.setPost(payContactsManagement.getPost());
if(!StringUtils.isBlank(payContactsManagement.getPhone())){
projectDetailVO.setPhone(PasswordUtil.decrypt(payContactsManagement.getPhone()));
}
if(!StringUtils.isBlank(payContactsManagement.getEmail())){
projectDetailVO.setEmail(PasswordUtil.decrypt(payContactsManagement.getEmail()));
}
projectDetailVO.setPostalCodeContacts(payContactsManagement.getPostalCode());
projectDetailVO.setContactAddress(payContactsManagement.getContactAddress());
}
}else{
PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getById(payCommonProject.getChargeCompanyTemporaryId());
if(Objects.isNull(payCompanyManagementTemporary)){
throw new JeroBootException("企业不存在!");
}
projectDetailVO.setCompanyName(payCompanyManagementTemporary.getCompanyName());
projectDetailVO.setPostalCodeCompany(payCompanyManagementTemporary.getPostalCode());
projectDetailVO.setCompanyAddress(payCompanyManagementTemporary.getCompanyAddress());
projectDetailVO.setCompanyPhone(PasswordUtil.decrypt(payCompanyManagementTemporary.getCompanyPhone()));
projectDetailVO.setDutyCode(payCompanyManagementTemporary.getDutyCode());
projectDetailVO.setBankAccountName(payCompanyManagementTemporary.getBankAccountName());
projectDetailVO.setOpeningBank(payCompanyManagementTemporary.getOpeningBank());
// 工作组 添加企业联系人 // 工作组 添加企业联系人
if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE2)){ else if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE2)){
PayWorkingGroupSubItem payWorkingGroupSubItem = payWorkingGroupSubItemService.getById(projectId); PayWorkingGroupSubItem payWorkingGroupSubItem = payWorkingGroupSubItemService.getById(projectId);
if(Objects.isNull(payWorkingGroupSubItem)){ if(Objects.isNull(payWorkingGroupSubItem)){
throw new JeroBootException("项目不存在!"); throw new JeroBootException("项目不存在!");
@@ -311,15 +274,14 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
queryPayWorkingGroupSubItemContacts.orderByAsc(PayWorkingGroupSubItemContacts::getOrderNum); queryPayWorkingGroupSubItemContacts.orderByAsc(PayWorkingGroupSubItemContacts::getOrderNum);
List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContacts = payWorkingGroupSubItemContactsService.list(queryPayWorkingGroupSubItemContacts); List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContacts = payWorkingGroupSubItemContactsService.list(queryPayWorkingGroupSubItemContacts);
if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)){ if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)){
List<String> listIds = listPayWorkingGroupSubItemContacts.stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList()); //List<String> listIds = listPayWorkingGroupSubItemContacts.stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
List<PayContactsManagementTemporary> payContactsManagementTemporaryList = payContactsManagementTemporaryService.listByIds(listIds); //List<PayContactsManagementTemporary> payContactsManagementTemporaryList = payContactsManagementTemporaryService.listByIds(listIds);
if(!CollectionUtils.isEmpty(payContactsManagementTemporaryList)){ if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)){
listPayWorkingGroupSubItemContacts.forEach(p->{ listPayWorkingGroupSubItemContacts.forEach(p->{
List<PayContactsManagementTemporary> listNew = payContactsManagementTemporaryList.stream().filter(o->Objects.equals(o.getId(),p.getContactsTemporaryId())).collect(Collectors.toList()); PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getByAllTable(p.getContactsId(),p.getContactsTemporaryId());
if(CollectionUtils.isEmpty(listNew)){ if(Objects.isNull(payContactsManagementTemporary)){
return; throw new JeroBootException("联系人不存在!");
} }
PayContactsManagementTemporary payContactsManagementTemporary = listNew.get(0);
p.setGender(payContactsManagementTemporary.getGender()); p.setGender(payContactsManagementTemporary.getGender());
if(!Objects.isNull(payContactsManagementTemporary.getGender())){ if(!Objects.isNull(payContactsManagementTemporary.getGender())){
p.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(payContactsManagementTemporary.getGender()))); p.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(payContactsManagementTemporary.getGender())));
@@ -337,7 +299,9 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
projectDetailVO.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts); projectDetailVO.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts);
} }
} }
}else if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE7)) { }
// 起草组项目
else if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE7)) {
PayDraftingGroupSubItem payDraftingGroupSubItem = payDraftingGroupSubItemService.getById(projectId); PayDraftingGroupSubItem payDraftingGroupSubItem = payDraftingGroupSubItemService.getById(projectId);
if(Objects.isNull(payDraftingGroupSubItem)){ if(Objects.isNull(payDraftingGroupSubItem)){
throw new JeroBootException("项目不存在!"); throw new JeroBootException("项目不存在!");
@@ -375,7 +339,7 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
} }
} }
}else { }else {
PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(payCommonProject.getContactsTemporaryId()); PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getByAllTable(contactsId,contactsTemporaryId);
if(Objects.isNull(payContactsManagementTemporary)){ if(Objects.isNull(payContactsManagementTemporary)){
throw new JeroBootException("联系人不存在!"); throw new JeroBootException("联系人不存在!");
} }
@@ -394,10 +358,11 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
projectDetailVO.setPostalCodeContacts(payContactsManagementTemporary.getPostalCode()); projectDetailVO.setPostalCodeContacts(payContactsManagementTemporary.getPostalCode());
projectDetailVO.setContactAddress(payContactsManagementTemporary.getContactAddress()); projectDetailVO.setContactAddress(payContactsManagementTemporary.getContactAddress());
} }
}
//会员权益 //会员权益
if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE5)){ if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE5)){
TbMemberProjectSubitem takeEffectInfo = tbMemberProjectSubitemService.getTakeEffectInfo(payCommonProject.getChargeCompanyTemporaryId()); TbMemberProjectSubitem takeEffectInfo = tbMemberProjectSubitemService.getTakeEffectInfo(chargeCompanyId);
if (takeEffectInfo != null){ if (takeEffectInfo != null){
projectDetailVO.setMemberNo(takeEffectInfo.getMemberNo()); projectDetailVO.setMemberNo(takeEffectInfo.getMemberNo());
projectDetailVO.setEffectiveDate(takeEffectInfo.getEffectiveDate()); projectDetailVO.setEffectiveDate(takeEffectInfo.getEffectiveDate());
@@ -1111,6 +1111,7 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
/** /**
* 判断当前企业是否是打包企业 * 判断当前企业是否是打包企业
*/ */
@Deprecated
@ApiOperation(value="判断当前企业是否是打包企业") @ApiOperation(value="判断当前企业是否是打包企业")
@GetMapping(value = "/judgeCompanyIsPackaged") @GetMapping(value = "/judgeCompanyIsPackaged")
public Result<Boolean> judgeCompanyIsPackaged(@RequestParam(name="companyId") String companyId){ public Result<Boolean> judgeCompanyIsPackaged(@RequestParam(name="companyId") String companyId){
@@ -33,4 +33,8 @@ public interface PayCompanyManagementMapper extends BaseMapper<PayCompanyManagem
Integer checkMemberCompanyName(@Param("memberId") String memberId, @Param("companyName") String companyName); Integer checkMemberCompanyName(@Param("memberId") String memberId, @Param("companyName") String companyName);
IPage<PayCompanyManagement> pageSafetyCenter(Page<PayCompanyManagement> page, @Param(Constants.WRAPPER) QueryWrapper<PayCompanyManagement> queryWrapper); IPage<PayCompanyManagement> pageSafetyCenter(Page<PayCompanyManagement> page, @Param(Constants.WRAPPER) QueryWrapper<PayCompanyManagement> queryWrapper);
Page<PayCompanyManagement> pageHaveMoney(Page<PayCompanyManagement> page, @Param("chargeCompanyIds") List<String> chargeCompanyIds);
List<PayCompanyManagement> pageHaveMoney(@Param("chargeCompanyIds") List<String> chargeCompanyIds);
} }
@@ -46,4 +46,14 @@
left join pay_functional_safety_center_subitem pfscs on pcm.id = pfscs.company_id left join pay_functional_safety_center_subitem pfscs on pcm.id = pfscs.company_id
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<select id="pageHaveMoney" resultType="com.jero.company.entity.PayCompanyManagement">
select * from pay_company_management
<where>
<foreach item="item" index="index" collection="chargeCompanyIds" open="id in (" separator="," close=")">
#{item}
</foreach>
</where>
order by create_time desc
</select>
</mapper> </mapper>
@@ -127,4 +127,7 @@ public interface IPayCompanyManagementService extends IService<PayCompanyManagem
IPage<PayCompanyManagement> pageSafetyCenter(Page<PayCompanyManagement> page, QueryWrapper<PayCompanyManagement> queryWrapper); IPage<PayCompanyManagement> pageSafetyCenter(Page<PayCompanyManagement> page, QueryWrapper<PayCompanyManagement> queryWrapper);
Page<PayCompanyManagement> pageHaveMoney(Page<PayCompanyManagement> page, List<String> chargeCompanyIds);
List<PayCompanyManagement> pageHaveMoney(List<String> chargeCompanyIds);
} }
@@ -32,14 +32,22 @@ import com.jero.company.vo.CompanyOrContactsCount;
import com.jero.company.vo.UpdateInvoicePram; import com.jero.company.vo.UpdateInvoicePram;
import com.jero.contract.entity.PayIncomeContract; import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.service.IPayIncomeContractService; 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.PayMemberProjectSubitem;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.service.IPayMemberProjectSubitemService; import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompany; import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.mapper.PayPackCompanyMapper;
import com.jero.pack.service.IPayPackCompanyService; import com.jero.pack.service.IPayPackCompanyService;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroupSubItem; import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.project.service.IPayCommonProjectService; import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.temporary.entity.PayCompanyManagementTemporary; import com.jero.temporary.entity.PayCompanyManagementTemporary;
@@ -93,7 +101,21 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
private SendMessageService sendMessageService; private SendMessageService sendMessageService;
@Resource @Resource
private Environment env; private Environment env;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Resource
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
@Resource
private AnnualDataLockingService annualDataLockingService;
@Resource
private IPayMeetingSituationService meetingSituationService;
@Resource
private PayMeetingSituationMapper meetingSituationMapper;
@Resource
private PayPackCompanyMapper packCompanyMapper;
@Resource
private IPayPackCompanyService packCompanyService;
@Override @Override
public void addMeeting(PayCompanyManagement payCompanyManagement) { public void addMeeting(PayCompanyManagement payCompanyManagement) {
if(StringUtils.isEmpty(payCompanyManagement.getCompanyPhone())){ if(StringUtils.isEmpty(payCompanyManagement.getCompanyPhone())){
@@ -409,23 +431,6 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
throw new JeroBootException("公司电话加密异常!"); throw new JeroBootException("公司电话加密异常!");
} }
} }
// 会员企业编辑同步会员系统
//if(Objects.equals(payCompanyManagementOld.getRoleCode(),PayCompanyManagementCommon.ROLE_CODE2)){
// if(!Objects.equals(payCompanyManagementOld.getCompanyName(),payCompanyManagement.getCompanyName())){
// throw new JeroBootException("会员企业名称不可修改!");
// }
// // 调用会员项目接口
// MemberInfo memberInfo = new MemberInfo();
// memberInfo.setCompanyName(payCompanyManagement.getCompanyName());
// memberInfo.setId(payCompanyManagementOld.getMemberId());
// memberInfo.setTaxNo(payCompanyManagement.getDutyCode());
// memberInfo.setDepositBank(payCompanyManagement.getOpeningBank());
// memberInfo.setBankAccount(payCompanyManagement.getBankAccount());
// memberInfo.setInvoiceAddress(payCompanyManagement.getCompanyAddress());
// memberInfo.setInvoicePhone(payCompanyManagement.getCompanyPhone());
// memberInfo.setLinkBankNumber(payCompanyManagement.getLinkBankNumber());
// AuthenticationUtils.post("/memberInfo/memberInfo/incomingEdit","",memberInfo);
//}
// 财务人员,直接批量变更状态 // 财务人员,直接批量变更状态
if(sysUser.getRoleCode().contains(RoleCommon.CWRY)){ if(sysUser.getRoleCode().contains(RoleCommon.CWRY)){
payCompanyManagementOld.setCompanyName(payCompanyManagement.getCompanyName()); payCompanyManagementOld.setCompanyName(payCompanyManagement.getCompanyName());
@@ -715,6 +720,16 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
return payCompanyManagementMapper.pageSafetyCenter(page, queryWrapper); return payCompanyManagementMapper.pageSafetyCenter(page, queryWrapper);
} }
@Override
public Page<PayCompanyManagement> pageHaveMoney(Page<PayCompanyManagement> page, List<String> chargeCompanyIds) {
return payCompanyManagementMapper.pageHaveMoney(page, chargeCompanyIds);
}
@Override
public List<PayCompanyManagement> pageHaveMoney(List<String> chargeCompanyIds) {
return payCompanyManagementMapper.pageHaveMoney(chargeCompanyIds);
}
/** /**
* 校验企业名称和信用代码是否匹配 * 校验企业名称和信用代码是否匹配
* @param payCompanyManagement * @param payCompanyManagement
@@ -749,113 +764,99 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
* @Exception * @Exception
*/ */
private void updateBatchData(PayCompanyManagement payCompanyManagement){ private void updateBatchData(PayCompanyManagement payCompanyManagement){
String companyManagementId = payCompanyManagement.getId();
//更新人员 //更新人员
LambdaUpdateWrapper<PayContactsManagement> updatePayContactsManagement = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PayContactsManagement> updatePayContactsManagement = new LambdaUpdateWrapper<>();
updatePayContactsManagement.eq(PayContactsManagement::getCompanyId,payCompanyManagement.getId()); updatePayContactsManagement.eq(PayContactsManagement::getCompanyId, companyManagementId);
updatePayContactsManagement.set(PayContactsManagement::getCompanyName,payCompanyManagement.getCompanyName()); updatePayContactsManagement.set(PayContactsManagement::getCompanyName,payCompanyManagement.getCompanyName());
payContactsManagementService.update(updatePayContactsManagement); payContactsManagementService.update(updatePayContactsManagement);
int thisYear = DateUtil.thisYear(); List<String> allYear = annualDataLockingService.getAllYear();
//需要更新的临时企业id //需要更新的临时企业id
List<String> companyTemporaryIdList = new ArrayList<>(); List<String> companyTemporaryIdList = new ArrayList<>();
// 更新普通项目 // 更新普通项目
LambdaQueryWrapper<PayCommonProject> quaryPayCommonProject = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayCommonProject> 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<PayCommonProject> list = payCommonProjectService.list(quaryPayCommonProject); List<PayCommonProject> list = payCommonProjectService.list(quaryPayCommonProject);
List<String> collect = list.stream().map(PayCommonProject::getChargeCompanyTemporaryId).collect(Collectors.toList()); List<String> collect = list.stream().map(PayCommonProject::getChargeCompanyTemporaryId).collect(Collectors.toList());
List<String> idList = list.stream().map(PayCommonProject::getId).collect(Collectors.toList());
companyTemporaryIdList.addAll(collect); companyTemporaryIdList.addAll(collect);
if (!collect.isEmpty()){ if (!idList.isEmpty()){
LambdaUpdateWrapper<PayCommonProject> updatePayCommonProject = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PayCommonProject> updatePayCommonProject = new LambdaUpdateWrapper<>();
updatePayCommonProject.in(PayCommonProject::getChargeCompanyTemporaryId,collect); updatePayCommonProject.in(PayCommonProject::getId,idList);
updatePayCommonProject.set(PayCommonProject::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName()); updatePayCommonProject.set(PayCommonProject::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName());
payCommonProjectService.update(updatePayCommonProject); payCommonProjectService.update(updatePayCommonProject);
} }
// 更新工作组 // 更新工作组
QueryWrapper<PayWorkingGroupSubItem> queryPayWorkingGroupSubItem = new QueryWrapper<>(); QueryWrapper<PayWorkingGroupSubItem> queryPayWorkingGroupSubItem = new QueryWrapper<>();
queryPayWorkingGroupSubItem.eq("pwg.year",thisYear); queryPayWorkingGroupSubItem.notIn("pwg.year",allYear);
queryPayWorkingGroupSubItem.lambda().eq(PayWorkingGroupSubItem::getChargeCompanyId,payCompanyManagement.getId()) queryPayWorkingGroupSubItem.lambda().eq(PayWorkingGroupSubItem::getChargeCompanyId, companyManagementId);
.and(
a -> {
a.eq(PayWorkingGroupSubItem::getPaidAmount, BigDecimal.ZERO)
.or()
.isNull(PayWorkingGroupSubItem::getPaidAmount);
})
.and(
a -> {
a.eq(PayWorkingGroupSubItem::getInvoiceAmount, BigDecimal.ZERO)
.or()
.isNull(PayWorkingGroupSubItem::getInvoiceAmount);
})
.and(
a -> {
a.eq(PayWorkingGroupSubItem::getConfirmAmount, BigDecimal.ZERO)
.or()
.isNull(PayWorkingGroupSubItem::getConfirmAmount);
});
List<PayWorkingGroupSubItem> workingGroupSubItemList = payWorkingGroupSubItemService.queryList(queryPayWorkingGroupSubItem); List<PayWorkingGroupSubItem> workingGroupSubItemList = payWorkingGroupSubItemService.queryList(queryPayWorkingGroupSubItem);
List<String> collect1 = workingGroupSubItemList.stream().map(PayWorkingGroupSubItem::getChargeCompanyTemporaryId).collect(Collectors.toList()); List<String> collect1 = workingGroupSubItemList.stream().map(PayWorkingGroupSubItem::getChargeCompanyTemporaryId).collect(Collectors.toList());
List<String> idList1 = workingGroupSubItemList.stream().map(PayWorkingGroupSubItem::getId).collect(Collectors.toList());
companyTemporaryIdList.addAll(collect1); companyTemporaryIdList.addAll(collect1);
if (!collect1.isEmpty()){ if (!idList1.isEmpty()){
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.in(PayWorkingGroupSubItem::getChargeCompanyId,collect1); updatePayWorkingGroupSubItem.in(PayWorkingGroupSubItem::getId,idList1);
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName()); updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName());
payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem); payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem);
} }
//会议项目
List<PayMeetingSituation> meetingSituations = meetingSituationMapper.listByYearNotIn(allYear,companyManagementId);
List<String> collect4 = meetingSituations.stream().map(PayMeetingSituation::getCompanyTemporaryId).collect(Collectors.toList());
List<String> idList4 = meetingSituations.stream().map(PayMeetingSituation::getId).collect(Collectors.toList());
companyTemporaryIdList.addAll(collect4);
if (!idList4.isEmpty()){
LambdaUpdateWrapper<PayMeetingSituation> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(PayMeetingSituation::getId,idList4);
updateWrapper.set(PayMeetingSituation::getCompanyName,payCompanyManagement.getCompanyName());
meetingSituationService.update(updateWrapper);
}
// 更新会员 // 更新会员
QueryWrapper<PayMemberProjectSubitem> queryPayMemberProjectSubitem = new QueryWrapper<>(); QueryWrapper<PayMemberProjectSubitem> queryPayMemberProjectSubitem = new QueryWrapper<>();
queryPayMemberProjectSubitem.eq("pmp.particular_year",thisYear); queryPayMemberProjectSubitem.notIn("pmp.particular_year",allYear) ;
queryPayMemberProjectSubitem.lambda().eq(PayMemberProjectSubitem::getCompanyId,payCompanyManagement.getId()) queryPayMemberProjectSubitem.lambda().eq(PayMemberProjectSubitem::getCompanyId, companyManagementId);
.and(
a -> {
a.eq(PayMemberProjectSubitem::getPaidAmount, BigDecimal.ZERO)
.or()
.isNull(PayMemberProjectSubitem::getPaidAmount);
})
.and(
a -> {
a.eq(PayMemberProjectSubitem::getInvoiceAmount, BigDecimal.ZERO)
.or()
.isNull(PayMemberProjectSubitem::getInvoiceAmount);
})
.and(
a -> {
a.eq(PayMemberProjectSubitem::getConfirmAmount, BigDecimal.ZERO)
.or()
.isNull(PayMemberProjectSubitem::getConfirmAmount);
});
List<PayMemberProjectSubitem> payMemberProjectSubitems = memberProjectSubitemService.queryPageListCompany(queryPayMemberProjectSubitem); List<PayMemberProjectSubitem> payMemberProjectSubitems = memberProjectSubitemService.queryPageListCompany(queryPayMemberProjectSubitem);
List<String> collect2 = payMemberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyTemporaryId).collect(Collectors.toList()); List<String> collect2 = payMemberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyTemporaryId).collect(Collectors.toList());
List<String> idList2 = payMemberProjectSubitems.stream().map(PayMemberProjectSubitem::getId).collect(Collectors.toList());
companyTemporaryIdList.addAll(collect2); companyTemporaryIdList.addAll(collect2);
if (!collect2.isEmpty()){ if (!idList2.isEmpty()){
LambdaUpdateWrapper<PayMemberProjectSubitem> updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PayMemberProjectSubitem> updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>();
updatePayMemberProjectSubitem.in(PayMemberProjectSubitem::getCompanyId,payCompanyManagement.getId()); updatePayMemberProjectSubitem.in(PayMemberProjectSubitem::getId,idList2);
updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getCompanyName,payCompanyManagement.getCompanyName()); updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getCompanyName,payCompanyManagement.getCompanyName());
memberProjectSubitemService.update(updatePayMemberProjectSubitem); memberProjectSubitemService.update(updatePayMemberProjectSubitem);
} }
// 更新标协会员
QueryWrapper<TbMemberProjectSubitem> queryTbMemberProjectSubitem = new QueryWrapper<>();
queryTbMemberProjectSubitem.notIn("tmp.year",allYear);
queryTbMemberProjectSubitem.lambda().eq(TbMemberProjectSubitem::getCompanyId, companyManagementId);
List<TbMemberProjectSubitem> tbMemberProjectSubitems = tbMemberProjectSubitemMapper.queryListCompanyYear(queryTbMemberProjectSubitem);
List<String> collect3 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getCompanyTemporaryId).collect(Collectors.toList());
List<String> idList3 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getId).collect(Collectors.toList());
companyTemporaryIdList.addAll(collect3);
if (!idList3.isEmpty()){
LambdaUpdateWrapper<TbMemberProjectSubitem> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(TbMemberProjectSubitem::getId,idList3);
updateWrapper.set(TbMemberProjectSubitem::getCompanyName,payCompanyManagement.getCompanyName());
tbMemberProjectSubitemService.update(updateWrapper);
}
//打包项目
List<PayPackCompany> packCompanyList = packCompanyMapper.listByYearNotIn(allYear,companyManagementId);
List<String> collect5 = packCompanyList.stream().map(PayPackCompany::getCompanyTemporaryId).collect(Collectors.toList());
List<String> idList6 = packCompanyList.stream().map(PayPackCompany::getId).collect(Collectors.toList());
companyTemporaryIdList.addAll(collect5);
if (!idList6.isEmpty()){
LambdaUpdateWrapper<PayPackCompany> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(PayPackCompany::getId,idList6);
updateWrapper.set(PayPackCompany::getCompanyTemporaryName,payCompanyManagement.getCompanyName());
packCompanyService.update(updateWrapper);
}
// 更新临时数据 // 更新临时数据
if (!companyTemporaryIdList.isEmpty()) { if (!companyTemporaryIdList.isEmpty()) {
LambdaUpdateWrapper<PayCompanyManagementTemporary> updatePayCompanyManagementTemporary = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PayCompanyManagementTemporary> updatePayCompanyManagementTemporary = new LambdaUpdateWrapper<>();
@@ -878,19 +879,11 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
// 更新合同 // 更新合同
LambdaUpdateWrapper<PayIncomeContract> updatePayIncomeContract = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PayIncomeContract> updatePayIncomeContract = new LambdaUpdateWrapper<>();
updatePayIncomeContract.eq(PayIncomeContract::getSignedCompanyId,payCompanyManagement.getId()); updatePayIncomeContract.eq(PayIncomeContract::getSignedCompanyId, companyManagementId);
//updatePayIncomeContract.ge(PayIncomeContract::getCreateTime,payCompanyManagement.getEditTime()); //updatePayIncomeContract.ge(PayIncomeContract::getCreateTime,payCompanyManagement.getEditTime());
updatePayIncomeContract.exists(" select 1 from pay_company_management_temporary where " + 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()) + "'"); "pay_income_contract.signed_company_temporary_id = id and create_time >= '" + DateTime.of(payCompanyManagement.getEditTime()) + "'");
updatePayIncomeContract.set(PayIncomeContract::getSignedCompanyTemporaryName,payCompanyManagement.getCompanyName()); updatePayIncomeContract.set(PayIncomeContract::getSignedCompanyTemporaryName,payCompanyManagement.getCompanyName());
payIncomeContractService.update(updatePayIncomeContract); payIncomeContractService.update(updatePayIncomeContract);
// 更新打包
LambdaUpdateWrapper<PayPackCompany> 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);
} }
} }
@@ -50,7 +50,6 @@ import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper; import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper;
import com.jero.project.service.IPayCommonProjectService; import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemContactsService;
import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.temporary.entity.PayCompanyManagementTemporary; import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.entity.PayContactsManagementTemporary;
@@ -321,7 +320,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
//如果未邮寄,更新邮寄联系人信息 //如果未邮寄,更新邮寄联系人信息
if (postStatus.equals(PayIncomeContractCommon.POST_STATUS0)){ if (postStatus.equals(PayIncomeContractCommon.POST_STATUS0)){
// 联系人 // 联系人
PayContactsManagementTemporary payContactsManagement = payContactsManagementTemporaryService.insertContactsManagementTemporary(payIncomeContract.getSignedContactsId()); PayContactsManagementTemporary payContactsManagement = payContactsManagementTemporaryService.insertContactsManagementTemporary(payIncomeContract.getSignedContactsId(), null);
if(!Objects.isNull(payContactsManagement)){ if(!Objects.isNull(payContactsManagement)){
payMailContract.setMobile(payContactsManagement.getPhone()); payMailContract.setMobile(payContactsManagement.getPhone());
payMailContract.setEmail(payContactsManagement.getEmail()); payMailContract.setEmail(payContactsManagement.getEmail());
@@ -929,7 +928,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
*/ */
private void setPayIncomeContractAdd(PayIncomeContract payIncomeContract){ private void setPayIncomeContractAdd(PayIncomeContract payIncomeContract){
// 企业 // 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payIncomeContract.getSignedCompanyId()); PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payIncomeContract.getSignedCompanyId(), null);
if(Objects.isNull(chargeCompanyName)){ if(Objects.isNull(chargeCompanyName)){
throw new JeroBootException("企业名称为空!"); throw new JeroBootException("企业名称为空!");
} }
@@ -937,7 +936,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
payIncomeContract.setSignedCompanyTemporaryName(chargeCompanyName.getCompanyName()); payIncomeContract.setSignedCompanyTemporaryName(chargeCompanyName.getCompanyName());
// 联系人 // 联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payIncomeContract.getSignedContactsId()); PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payIncomeContract.getSignedContactsId(), null);
if(Objects.isNull(contactsName)){ if(Objects.isNull(contactsName)){
throw new JeroBootException("联系人名称为空!"); throw new JeroBootException("联系人名称为空!");
} }
@@ -977,13 +976,13 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(!Objects.equals(payIncomeContractStatus.getSignedContactsTemporaryId(),payIncomeContract.getSignedContactsId())){ if(!Objects.equals(payIncomeContractStatus.getSignedContactsTemporaryId(),payIncomeContract.getSignedContactsId())){
// 联系人 // 联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payIncomeContract.getSignedContactsId()); PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payIncomeContract.getSignedContactsId(), null);
if(Objects.isNull(contactsName)){ if(Objects.isNull(contactsName)){
throw new JeroBootException("联系人名称为空!"); throw new JeroBootException("联系人名称为空!");
} }
payIncomeContract.setSignedContactsTemporaryId(contactsName.getId()); payIncomeContract.setSignedContactsTemporaryId(contactsName.getId());
payIncomeContract.setSignedContactsTemporaryName(contactsName.getName()); payIncomeContract.setSignedContactsTemporaryName(contactsName.getName());
payContactsManagementTemporaryService.removeById(payIncomeContractStatus.getSignedContactsTemporaryId()); // payContactsManagementTemporaryService.removeById(payIncomeContractStatus.getSignedContactsTemporaryId());
}else{ }else{
payIncomeContract.setSignedContactsId(payIncomeContractStatus.getSignedContactsId()); payIncomeContract.setSignedContactsId(payIncomeContractStatus.getSignedContactsId());
} }
@@ -23,9 +23,8 @@ import com.jero.data.entity.*;
import com.jero.data.service.IPayCaseCouncilService; import com.jero.data.service.IPayCaseCouncilService;
import com.jero.data.service.IPayCaseCouncilSubitemService; import com.jero.data.service.IPayCaseCouncilSubitemService;
import com.jero.mail.commont.constant; import com.jero.mail.commont.constant;
import com.jero.meeting.entity.PayMeetingRemindRecord;
import com.jero.meeting.service.IPayMeetingRemindRecordService; import com.jero.meeting.service.IPayMeetingRemindRecordService;
import com.jero.project.common.PayProjectCommon; import com.jero.member.service.ITbMemberProjectService;
import com.jero.util.AmountUtil; import com.jero.util.AmountUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -38,7 +37,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.ArrayList; import java.util.ArrayList;
@@ -67,6 +65,8 @@ public class PayCaseCouncilSubitemController extends JeroController<PayCaseCounc
private IPayContactsManagementService payContactsManagementService; private IPayContactsManagementService payContactsManagementService;
@Resource @Resource
private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService; private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
@Resource
private ITbMemberProjectService tbMemberProjectService;
/** /**
* 理事会成员表 * 理事会成员表
@@ -320,5 +320,16 @@ public class PayCaseCouncilSubitemController extends JeroController<PayCaseCounc
return AmountUtil.exportListXls(list, ChooseExcelCouncil.class,"理事会表导出"); return AmountUtil.exportListXls(list, ChooseExcelCouncil.class,"理事会表导出");
} }
/**
* 导入到标协会员
*/
@Transactional
@RequiresPermissions("council:exportToMember")
@AutoLog(value = "理事会成员表-导入到标协会员")
@ApiOperation(value="理事会成员表-导入到标协会员", notes="理事会成员表-导入到标协会员")
@PostMapping(value = "/import")
public Result<?> importToMemberProjectSubitem(@RequestBody JSONObject jsonObject) {
payCaseCouncilSubitemService.importToMemberProjectSubitem(jsonObject);
return Result.OK("导入成功!");
}
} }
@@ -1,11 +1,11 @@
package com.jero.data.service; package com.jero.data.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.data.entity.*; import com.jero.data.entity.*;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -27,4 +27,5 @@ public interface IPayCaseCouncilSubitemService extends IService<PayCaseCouncilSu
List<subCouncil> listTwo(QueryWrapper<subCouncil> queryWrapper, String meetingId); List<subCouncil> listTwo(QueryWrapper<subCouncil> queryWrapper, String meetingId);
void importToMemberProjectSubitem(JSONObject jsonObject);
} }
@@ -1,18 +1,38 @@
package com.jero.data.service.impl; 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.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.entity.*;
import com.jero.data.mapper.PayCaseCouncilSubitemMapper; import com.jero.data.mapper.PayCaseCouncilSubitemMapper;
import com.jero.data.service.IPayCaseCouncilSubitemService; 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 org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* @Description: pay_case_council_subitem * @Description: pay_case_council_subitem
@@ -25,6 +45,17 @@ public class PayCaseCouncilSubitemServiceImpl extends ServiceImpl<PayCaseCouncil
@Resource @Resource
private PayCaseCouncilSubitemMapper payCaseCouncilSubitemMapper; private PayCaseCouncilSubitemMapper payCaseCouncilSubitemMapper;
@Resource
private IPayCaseCouncilSubitemService payCaseCouncilSubitemService;
@Resource
private ITbMemberProjectService tbMemberProjectService;
@Resource
private IPayCompanyManagementService companyManagementService;
@Resource
private IPayContactsManagementService payContactsManagementService;
@Resource
private ITbMemberProjectSubitemService memberProjectSubitemService;
@Override @Override
public IPage<councilList> listThree(Page<councilList> page, String contactsNames, String companyNames, String councilNames, String userId) { public IPage<councilList> listThree(Page<councilList> page, String contactsNames, String companyNames, String councilNames, String userId) {
return payCaseCouncilSubitemMapper.listThree(page,contactsNames,companyNames,councilNames,userId); return payCaseCouncilSubitemMapper.listThree(page,contactsNames,companyNames,councilNames,userId);
@@ -50,5 +81,104 @@ public class PayCaseCouncilSubitemServiceImpl extends ServiceImpl<PayCaseCouncil
return payCaseCouncilSubitemMapper.listTwo(queryWrapper,meetingId); return payCaseCouncilSubitemMapper.listTwo(queryWrapper,meetingId);
} }
@Override
public void importToMemberProjectSubitem(JSONObject jsonObject) {
String councilId = jsonObject.getString("id");
String projectId = jsonObject.getString("projectId");
if (StringUtils.isBlank(councilId) || StringUtils.isBlank(projectId)) {
throw new JeroBootException("参数错误");
}
// 根据理事会id查询属于它的所有企业
LambdaUpdateWrapper<PayCaseCouncilSubitem> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(PayCaseCouncilSubitem::getCouncilId,councilId);
List<PayCaseCouncilSubitem> councilSubitemList = payCaseCouncilSubitemService.list(lambdaUpdateWrapper);
if (councilSubitemList.isEmpty()) {
throw new JeroBootException("该理事会下无成员");
}
// 根据标协会员项目id查询对应的标协会员项目
TbMemberProject tbMemberProject = tbMemberProjectService.getById(projectId);
if (Objects.isNull(tbMemberProject)) {
throw new JeroBootException("该标协会员项目不存在");
}
List<TbMemberProjectSubitem> 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<TbMemberProjectSubitem> 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());
}
} }
@@ -35,8 +35,7 @@
pdgs.create_time AS createTime, pdgs.create_time AS createTime,
pdgs.update_by AS updateBy pdgs.update_by AS updateBy
FROM pay_drafting_group_subitem pdgs 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 pdgs.charge_company_id = pcm.id
left join pay_company_management pcm on pcmt.company_id = pcm.id
<where> <where>
pdgs.drafting_group_id = #{payDraftingGroupSubItem.draftingGroupId} AND (pdgs.check_result = 1 OR pdgs.check_result = 2) pdgs.drafting_group_id = #{payDraftingGroupSubItem.draftingGroupId} AND (pdgs.check_result = 1 OR pdgs.check_result = 2)
<if test="payDraftingGroupSubItem.chargeCompanyTemporaryName != null and payDraftingGroupSubItem.chargeCompanyTemporaryName != ''"> <if test="payDraftingGroupSubItem.chargeCompanyTemporaryName != null and payDraftingGroupSubItem.chargeCompanyTemporaryName != ''">
@@ -15,7 +15,6 @@ import com.jero.common.service.RolePermissionService;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.company.entity.PayContactsManagement; import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService; import com.jero.company.service.IPayContactsManagementService;
import com.jero.drafting.common.DraftingConstant;
import com.jero.drafting.entity.PayDraftingGroup; import com.jero.drafting.entity.PayDraftingGroup;
import com.jero.drafting.entity.PayDraftingGroupResearchProject; import com.jero.drafting.entity.PayDraftingGroupResearchProject;
import com.jero.drafting.entity.PayDraftingGroupSubItem; import com.jero.drafting.entity.PayDraftingGroupSubItem;
@@ -331,7 +330,7 @@ public class PayDraftingGroupServiceImpl extends ServiceImpl<PayDraftingGroupMap
// 添加企业临时数据 // 添加企业临时数据
PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getById(p.getChargeCompanyTemporaryId()); PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getById(p.getChargeCompanyTemporaryId());
if(Objects.isNull(payCompanyManagementTemporary)){ if(Objects.isNull(payCompanyManagementTemporary)){
payCompanyManagementTemporary = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(p.getChargeCompanyId()); payCompanyManagementTemporary = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(p.getChargeCompanyId(), null);
}else{ }else{
payCompanyManagementTemporary.setCompanyId(payCompanyManagementTemporary.getCompanyId()); payCompanyManagementTemporary.setCompanyId(payCompanyManagementTemporary.getCompanyId());
payCompanyManagementTemporary.setId(null); payCompanyManagementTemporary.setId(null);
@@ -356,7 +355,7 @@ public class PayDraftingGroupServiceImpl extends ServiceImpl<PayDraftingGroupMap
for (PayDraftingGroupSubItemContacts subItemContacts : itemContactsList) { for (PayDraftingGroupSubItemContacts subItemContacts : itemContactsList) {
PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(subItemContacts.getContactsTemporaryId()); PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(subItemContacts.getContactsTemporaryId());
if(Objects.isNull(payContactsManagementTemporary)){ if(Objects.isNull(payContactsManagementTemporary)){
payContactsManagementTemporary = payContactsManagementTemporaryService.insertContactsManagementTemporary(subItemContacts.getContactsId()); payContactsManagementTemporary = payContactsManagementTemporaryService.insertContactsManagementTemporary(subItemContacts.getContactsId(), null);
}else{ }else{
payContactsManagementTemporary.setId(null); payContactsManagementTemporary.setId(null);
payContactsManagementTemporary.setCompanyId(p.getChargeCompanyTemporaryId()); payContactsManagementTemporary.setCompanyId(p.getChargeCompanyTemporaryId());
@@ -215,7 +215,7 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl<PayDraftingG
*/ */
private void setPayDraftingGroupSubItemAdd(PayDraftingGroupSubItem payDraftingGroupSubItem) { private void setPayDraftingGroupSubItemAdd(PayDraftingGroupSubItem payDraftingGroupSubItem) {
// 企业 // 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payDraftingGroupSubItem.getChargeCompanyId()); PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payDraftingGroupSubItem.getChargeCompanyId(), null);
if (Objects.isNull(chargeCompanyName)) { if (Objects.isNull(chargeCompanyName)) {
throw new JeroBootException("企业名称为空!"); throw new JeroBootException("企业名称为空!");
} }
@@ -225,7 +225,7 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl<PayDraftingG
if (!CollectionUtils.isEmpty(payDraftingGroupSubItemContactsList)) { if (!CollectionUtils.isEmpty(payDraftingGroupSubItemContactsList)) {
for (int i = 0; i < payDraftingGroupSubItemContactsList.size(); i++) { for (int i = 0; i < payDraftingGroupSubItemContactsList.size(); i++) {
// 企业联系人 // 企业联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payDraftingGroupSubItemContactsList.get(i).getContactsId()); PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payDraftingGroupSubItemContactsList.get(i).getContactsId(), null);
if (Objects.isNull(contactsName)) { if (Objects.isNull(contactsName)) {
throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!"); throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!");
} }
@@ -275,10 +275,10 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl<PayDraftingG
throw new JeroBootException("起草组成员不可操作!"); throw new JeroBootException("起草组成员不可操作!");
} }
// 删除企业联系人临时数据 // 删除企业联系人临时数据
payCompanyManagementTemporaryService.removeById(payDraftingGroupSubItem.getChargeCompanyTemporaryId()); //payCompanyManagementTemporaryService.removeById(payDraftingGroupSubItem.getChargeCompanyTemporaryId());
List<PayDraftingGroupSubItemContacts> subItemContacts = payDraftingGroupSubItemContactsMapper.getSubItemContacts(id); List<PayDraftingGroupSubItemContacts> subItemContacts = payDraftingGroupSubItemContactsMapper.getSubItemContacts(id);
List<String> temporaryIds = subItemContacts.stream().map(PayDraftingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList()); List<String> temporaryIds = subItemContacts.stream().map(PayDraftingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
payContactsManagementTemporaryService.removeByIds(temporaryIds); // paycontactsManagementTemporaryService.removeByIds(temporaryIds);
} }
/** /**
@@ -439,13 +439,13 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl<PayDraftingG
private void setPayDraftingGroupSubItemEdit(PayDraftingGroupSubItem payDraftingGroupSubItem, PayDraftingGroupSubItem payDraftingGroupSubItemOld) { private void setPayDraftingGroupSubItemEdit(PayDraftingGroupSubItem payDraftingGroupSubItem, PayDraftingGroupSubItem payDraftingGroupSubItemOld) {
if (!Objects.equals(payDraftingGroupSubItemOld.getChargeCompanyTemporaryId(), payDraftingGroupSubItem.getChargeCompanyId())) { if (!Objects.equals(payDraftingGroupSubItemOld.getChargeCompanyTemporaryId(), payDraftingGroupSubItem.getChargeCompanyId())) {
// 企业信息 // 企业信息
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payDraftingGroupSubItem.getChargeCompanyId()); PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payDraftingGroupSubItem.getChargeCompanyId(), null);
if (Objects.isNull(chargeCompanyName)) { if (Objects.isNull(chargeCompanyName)) {
throw new JeroBootException("企业名称为空!"); throw new JeroBootException("企业名称为空!");
} }
payDraftingGroupSubItem.setChargeCompanyTemporaryId(chargeCompanyName.getId()); payDraftingGroupSubItem.setChargeCompanyTemporaryId(chargeCompanyName.getId());
payDraftingGroupSubItem.setChargeCompanyTemporaryName(chargeCompanyName.getCompanyName()); payDraftingGroupSubItem.setChargeCompanyTemporaryName(chargeCompanyName.getCompanyName());
payCompanyManagementTemporaryService.removeById(payDraftingGroupSubItemOld.getChargeCompanyTemporaryId()); //payCompanyManagementTemporaryService.removeById(payDraftingGroupSubItemOld.getChargeCompanyTemporaryId());
} else { } else {
payDraftingGroupSubItem.setChargeCompanyId(payDraftingGroupSubItemOld.getChargeCompanyId()); payDraftingGroupSubItem.setChargeCompanyId(payDraftingGroupSubItemOld.getChargeCompanyId());
} }
@@ -455,7 +455,7 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl<PayDraftingG
// 删除临时表历史记录 // 删除临时表历史记录
if (!CollectionUtils.isEmpty(payDraftingGroupSubItemOld.getPayDraftingGroupSubItemContactsList())) { if (!CollectionUtils.isEmpty(payDraftingGroupSubItemOld.getPayDraftingGroupSubItemContactsList())) {
List<String> list = payDraftingGroupSubItemOld.getPayDraftingGroupSubItemContactsList().stream().map(PayDraftingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList()); List<String> list = payDraftingGroupSubItemOld.getPayDraftingGroupSubItemContactsList().stream().map(PayDraftingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
payContactsManagementTemporaryService.removeByIds(list); // paycontactsManagementTemporaryService.removeByIds(list);
} }
// 删除联系人记录 // 删除联系人记录
LambdaUpdateWrapper<PayDraftingGroupSubItemContacts> updatePayDraftingGroupSubItemContacts = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PayDraftingGroupSubItemContacts> updatePayDraftingGroupSubItemContacts = new LambdaUpdateWrapper<>();
@@ -464,7 +464,7 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl<PayDraftingG
// 新增 // 新增
for (int i = 0; i < payDraftingGroupSubItemContactsList.size(); i++) { for (int i = 0; i < payDraftingGroupSubItemContactsList.size(); i++) {
// 企业联系人 // 企业联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payDraftingGroupSubItemContactsList.get(i).getContactsId()); PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payDraftingGroupSubItemContactsList.get(i).getContactsId(), null);
if (Objects.isNull(contactsName)) { if (Objects.isNull(contactsName)) {
throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!"); throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!");
} }
@@ -226,9 +226,9 @@ public class IndexService {
divide = BigDecimal.ZERO; divide = BigDecimal.ZERO;
}else { }else {
divide = money divide = money
.divide(all,3,RoundingMode.HALF_DOWN) .divide(all,4,RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.setScale(1, RoundingMode.UNNECESSARY); .setScale(2, RoundingMode.UNNECESSARY);
} }
histogramVO.setValue(divide.toString()); histogramVO.setValue(divide.toString());
histogramVOlist.add(histogramVO); histogramVOlist.add(histogramVO);
@@ -295,9 +295,9 @@ public class IndexService {
divide = BigDecimal.ZERO; divide = BigDecimal.ZERO;
}else { }else {
divide = money divide = money
.divide(all,3,RoundingMode.HALF_DOWN) .divide(all,4,RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.setScale(1, RoundingMode.UNNECESSARY); .setScale(2, RoundingMode.UNNECESSARY);
} }
pieChartVO.setValue(String.valueOf(divide)); pieChartVO.setValue(String.valueOf(divide));
@@ -348,9 +348,9 @@ public class IndexService {
divide = BigDecimal.ZERO; divide = BigDecimal.ZERO;
}else { }else {
divide = one divide = one
.divide(all,3,RoundingMode.HALF_DOWN) .divide(all,4,RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.setScale(1, RoundingMode.UNNECESSARY); .setScale(2, RoundingMode.UNNECESSARY);
} }
uncollectedPieChartVO.setValue(divide.toString()); uncollectedPieChartVO.setValue(divide.toString());
} }
@@ -10,6 +10,7 @@ import com.jero.mail.entity.PayMailBill;
import com.jero.mail.vo.PayMailBillVO; import com.jero.mail.vo.PayMailBillVO;
import com.jero.member.enums.StandardsTypeEnum; import com.jero.member.enums.StandardsTypeEnum;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
@@ -44,6 +45,8 @@ public interface IPayMailBillService extends IService<PayMailBill> {
*/ */
Result<?> addPayBill(PayMailBillVO payMailBill); Result<?> addPayBill(PayMailBillVO payMailBill);
int getMakeInvoice(BigDecimal amountReceivable, Integer needInvoice, BigDecimal invoiceAmount);
/** /**
* 编辑开票 * 编辑开票
* @param payMailBillVo * @param payMailBillVo
@@ -16,7 +16,6 @@ import com.jero.common.enums.ManagementMessageEnums;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService; import com.jero.common.service.SendMessageService;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil; import com.jero.common.util.PasswordUtil;
import com.jero.company.entity.PayCompanyManagement; import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement; 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.company.service.IPayContactsManagementService;
import com.jero.config.StaticConfig; import com.jero.config.StaticConfig;
import com.jero.contract.common.PayIncomeContractCommon; import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.mail.entity.BillingInfo;
import com.jero.mail.entity.PayMailBill; import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject; import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.mapper.PayMailBillMapper; 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.IPayMeetingService;
import com.jero.meeting.service.IPayMeetingSituationService; import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.member.entity.*; import com.jero.member.entity.*;
import com.jero.member.enums.StandardsTypeEnum;
import com.jero.member.mapper.*; import com.jero.member.mapper.*;
import com.jero.member.service.*; import com.jero.member.service.*;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
@@ -754,28 +751,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
break; break;
} }
if(amountReceivable==null){ makeInvoice = getMakeInvoice(amountReceivable, needInvoice, invoiceAmount);
amountReceivable =new BigDecimal("0");
}
BigDecimal zero =new BigDecimal("0");
//应收=0 || 不需要开票
if(amountReceivable.compareTo(zero)==0 || needInvoice.equals(0)){
makeInvoice= 3;
}
//应收>开票总额 && 开票总额!=0
if(amountReceivable.compareTo(invoiceAmount) == 1 && !(invoiceAmount.compareTo(zero) == 0)){
makeInvoice= 2;
}
//开票总额>=应收
if(invoiceAmount.compareTo(amountReceivable) > -1){
makeInvoice= 1;
}
//开票总额为0
if(invoiceAmount.compareTo(zero)==0){
makeInvoice= 0;
}
//更新项目表开票状态 //更新项目表开票状态
switch (payMailBillProject.getProjectType().toString()) { switch (payMailBillProject.getProjectType().toString()) {
@@ -844,6 +820,43 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
} }
} }
/**
* 根据带确收金额和开票金额获得开票状态
* @param amountReceivable
* @param needInvoice
* @param invoiceAmount
* @return
*/
@Override
public int getMakeInvoice(BigDecimal amountReceivable, Integer needInvoice, BigDecimal invoiceAmount) {
int makeInvoice = 4;
if(amountReceivable==null){
amountReceivable =new BigDecimal("0");
}
if(invoiceAmount==null){
invoiceAmount =new BigDecimal("0");
}
BigDecimal zero = new BigDecimal("0");
//应收=0 || 不需要开票
if (amountReceivable.compareTo(zero) == 0 || needInvoice.equals(0)) {
makeInvoice = 3;
}
//应收>开票总额 && 开票总额!=0
if (amountReceivable.compareTo(invoiceAmount) == 1 && !(invoiceAmount.compareTo(zero) == 0)) {
makeInvoice = 2;
}
//开票总额>=应收
if (invoiceAmount.compareTo(amountReceivable) > -1) {
makeInvoice = 1;
}
//开票总额为0
if (invoiceAmount.compareTo(zero) == 0) {
makeInvoice = 0;
}
return makeInvoice;
}
//校验不同项目是否属于同一个公司,开票金额是否大于当前未开票金额,企业名称是否审核 //校验不同项目是否属于同一个公司,开票金额是否大于当前未开票金额,企业名称是否审核
private String checkCompanyProject(List<PayMailBillProject> bmpList) { private String checkCompanyProject(List<PayMailBillProject> bmpList) {
@@ -1311,28 +1324,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
break; break;
} }
if(amountReceivable==null){ makeInvoice = getMakeInvoice(amountReceivable, needInvoice, invoiceAmount);
amountReceivable =new BigDecimal("0");
}
BigDecimal zero =new BigDecimal("0");
//应收=0 || 不需要开票
if(amountReceivable.compareTo(zero)==0 || needInvoice.equals(0)){
makeInvoice= 3;
}
//应收>开票总额 && 开票总额!=0
if(amountReceivable.compareTo(invoiceAmount) == 1 && !(invoiceAmount.compareTo(zero) == 0)){
makeInvoice= 2;
}
//开票总额>=应收
if(invoiceAmount.compareTo(amountReceivable) > -1){
makeInvoice= 1;
}
//开票总额为0
if(invoiceAmount.compareTo(zero)==0){
makeInvoice= 0;
}
//更新项目表开票状态 //更新项目表开票状态
switch (payMailBillProject.getProjectType().toString()) { switch (payMailBillProject.getProjectType().toString()) {
@@ -1662,28 +1654,8 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
default: default:
break; break;
} }
if(amountReceivable==null){
amountReceivable =new BigDecimal("0");
}
BigDecimal zero =new BigDecimal("0"); makeInvoice = getMakeInvoice(amountReceivable, needInvoice, invoiceAmount);
//应收=0 || 不需要开票
if(amountReceivable.compareTo(zero)==0 || needInvoice.equals(0)){
makeInvoice= 3;
}
//应收>开票总额 && 开票总额!=0
if(amountReceivable.compareTo(invoiceAmount) == 1 && !(invoiceAmount.compareTo(zero) == 0)){
makeInvoice= 2;
}
//开票总额>=应收
if(invoiceAmount.compareTo(amountReceivable) > -1){
makeInvoice= 1;
}
//开票总额为0
if(invoiceAmount.compareTo(zero)==0){
makeInvoice= 0;
}
//更新项目表开票状态 //更新项目表开票状态
switch (oldBmp.getProjectType().toString()) { switch (oldBmp.getProjectType().toString()) {
@@ -29,7 +29,9 @@ import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -81,6 +83,12 @@ public class CouncilMeetingSituationController extends JeroController<PayMeeting
} else { } else {
meetingSituation.setIdentification(PayProjectCommon.NO); meetingSituation.setIdentification(PayProjectCommon.NO);
} }
Date estimatedArrivalDate = meetingSituation.getEstimatedArrivalDate();
if (estimatedArrivalDate != null) {
SimpleDateFormat targetFormat = new SimpleDateFormat("yyyy-MM");
String newDate = targetFormat.format(estimatedArrivalDate);
meetingSituation.setEstimatedArrivalDateStr(newDate);
}
} }
return Result.OK(pageList); return Result.OK(pageList);
} }
@@ -42,6 +42,7 @@ import javax.servlet.http.HttpServletRequest;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* 起草组会议 参会人信息 * 起草组会议 参会人信息
@@ -194,6 +195,28 @@ public class DraftGroupMeetingSituationController extends JeroController<PayMeet
return Result.OK("审核成功!"); return Result.OK("审核成功!");
} }
/**
* 批量审核报名信息
*/
@AutoLog(value = "批量审核报名信息")
@RequiresPermissions("draftGroupMeetingSituation:batchAuditSignUp")
@ApiOperation(value = "批量审核报名信息")
@PostMapping(value = "/checkRegisterBatch")
public Result<?> checkRegisterBatch(@RequestBody CheckVO checkVO) {
List<String> ids = Arrays.asList(checkVO.getIds().split(","));
List<CheckVO> 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("审核成功!");
}
// /** // /**
// * 审核缴费凭证 // * 审核缴费凭证
// */ // */
@@ -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;
/**
* <p>
* 会议酒店推荐表 前端控制器
* </p>
*
* @author sz
* @since 2024-07-10
*/
@Api(tags = "会议酒店推荐")
@RestController
@RequestMapping("/meeting/payMeetingHotelRecommend")
@Slf4j
public class PayMeetingHotelRecommendController extends JeroController<PayMeetingHotelRecommend, IPayMeetingHotelRecommendService> {
@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<PayMeetingHotelRecommend> 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<Object> importXls(HttpServletRequest request) {
List<Object> excelData = super.getExcelData(request, PayMeetingHotelRecommendExcel.class);
payMeetingHotelRecommendService.addExcel(excelData);
return Result.OK("文件导入成功!");
}
}
@@ -29,9 +29,12 @@ import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
/** /**
@@ -86,6 +89,12 @@ public class WorkGroupMeetingSituationController extends JeroController<PayMeeti
}else { }else {
meetingSituation.setIdentification(PayProjectCommon.NO); meetingSituation.setIdentification(PayProjectCommon.NO);
} }
Date estimatedArrivalDate = meetingSituation.getEstimatedArrivalDate();
if (estimatedArrivalDate != null) {
SimpleDateFormat targetFormat = new SimpleDateFormat("yyyy-MM");
String newDate = targetFormat.format(estimatedArrivalDate);
meetingSituation.setEstimatedArrivalDateStr(newDate);
}
} }
return Result.OK(pageList); return Result.OK(pageList);
} }
@@ -203,6 +212,28 @@ public class WorkGroupMeetingSituationController extends JeroController<PayMeeti
return Result.OK("审核成功!"); return Result.OK("审核成功!");
} }
/**
* 批量审核报名信息
*/
@AutoLog(value = "批量审核报名信息")
@RequiresPermissions("workGroupMeetingSituation:batchAuditSignUp")
@ApiOperation(value = "批量审核报名信息")
@PostMapping(value = "/checkRegisterBatch")
public Result<?> checkRegisterBatch(@RequestBody CheckVO checkVO) {
List<String> ids = Arrays.asList(checkVO.getIds().split(","));
List<CheckVO> 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("审核成功!");
}
/** /**
* 合并开票 * 合并开票
*/ */
@@ -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;
/**
* <p>
* 会议酒店推荐表
* </p>
*
* @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;
}
@@ -586,4 +586,9 @@ public class PayMeetingSituation implements Serializable {
@ApiModelProperty(value = "预计到账日期") @ApiModelProperty(value = "预计到账日期")
private Date estimatedArrivalDate; private Date estimatedArrivalDate;
/**预计到账日期*/
@ApiModelProperty(value = "预计到账日期")
@TableField(exist = false)
private String estimatedArrivalDateStr;
} }
@@ -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;
/**
* <p>
* 会议酒店推荐表 Mapper 接口
* </p>
*
* @author sz
* @since 2024-07-10
*/
public interface PayMeetingHotelRecommendMapper extends BaseMapper<PayMeetingHotelRecommend> {
@Update("TRUNCATE TABLE pay_meeting_hotel_recommend")
void truncateTable();
}
@@ -38,4 +38,19 @@ public interface PayMeetingSituationMapper extends BaseMapper<PayMeetingSituatio
List<MeetingPackStatistics> getMeetingPackStatistics(@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> query); List<MeetingPackStatistics> getMeetingPackStatistics(@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> query);
MeetingPackStatistics getMeetingPackStatisticsCount(@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> query); MeetingPackStatistics getMeetingPackStatisticsCount(@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> query);
/**
* 根据年份获取参会人
* @param year 年份
*/
List<PayMeetingSituation> listByYear(@Param("year")String year);
/**
* 根据年份获取参会人
*
* @param yearList 年份
* @param companyManagementId
*/
List<PayMeetingSituation> listByYearNotIn(@Param("yearList") List<String> yearList, @Param("companyManagementId") String companyManagementId);
} }
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.meeting.mapper.PayMeetingHotelRecommendMapper">
</mapper>
@@ -1,6 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.meeting.mapper.PayMeetingSituationMapper"> <mapper namespace="com.jero.meeting.mapper.PayMeetingSituationMapper">
<sql id="Base_Column_List">
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
</sql>
<resultMap id="PayMeetingSituationResultMap" type="com.jero.meeting.entity.PayMeetingSituation"> <resultMap id="PayMeetingSituationResultMap" type="com.jero.meeting.entity.PayMeetingSituation">
<id column="id" property="id"/> <id column="id" property="id"/>
<result column="create_by" property="createBy"/> <result column="create_by" property="createBy"/>
@@ -202,4 +249,29 @@
from v_meeting_pack_statistical from v_meeting_pack_statistical
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<!--auto generated by MybatisCodeHelper on 2024-07-24-->
<select id="listByYear" resultType="com.jero.meeting.entity.PayMeetingSituation">
select
*
from pay_meeting_situation
<where>
meeting_id in (select id from pay_meeting where particular_year = #{year})
</where>
</select>
<select id="listByYearNotIn" resultType="com.jero.meeting.entity.PayMeetingSituation">
select
*
from pay_meeting_situation
<where>
company_id = #{companyManagementId}
and meeting_id in (
select id from pay_meeting where particular_year not in
<foreach item="item" index="index" collection="yearList" open="(" separator="," close=")">
#{item}
</foreach>
)
</where>
</select>
</mapper> </mapper>
@@ -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;
/**
* <p>
* 会议酒店推荐表 服务类
* </p>
*
* @author sz
* @since 2024-07-10
*/
public interface IPayMeetingHotelRecommendService extends IService<PayMeetingHotelRecommend> {
/**
* 分页列表查询
* @param meetingHotelRecommend
* @param pageNo
* @param pageSize
* @param req
* @return
*/
IPage<PayMeetingHotelRecommend> queryHotelRecommendS(PayMeetingHotelRecommend meetingHotelRecommend, Integer pageNo, Integer pageSize, HttpServletRequest req);
void addExcel(List<Object> excelData);
}
@@ -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;
/**
* <p>
* 会议酒店推荐表 服务实现类
* </p>
*
* @author sz
* @since 2024-07-10
*/
@Service
public class PayMeetingHotelRecommendServiceImpl extends ServiceImpl<PayMeetingHotelRecommendMapper, PayMeetingHotelRecommend> implements IPayMeetingHotelRecommendService {
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private PayMeetingHotelRecommendMapper payMeetingHotelRecommendMapper;
/**
* 分页列表查询
*
* @param meetingHotelRecommend
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@Override
public IPage<PayMeetingHotelRecommend> queryHotelRecommendS(PayMeetingHotelRecommend meetingHotelRecommend, Integer pageNo, Integer pageSize, HttpServletRequest req) {
QueryWrapper<PayMeetingHotelRecommend> 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<PayMeetingHotelRecommend> page = new Page(pageNo, pageSize);
return page(page,queryWrapper);
}
@Override
public void addExcel(List<Object> excelData) {
if (excelData.isEmpty()) {
throw new JeroBootException("导入数据为空,请填写数据之后重新导入!");
}
// 是或否
Map<String, String> ynMap = sysBaseAPI.queryDictItemsMapByCode("yn");
// // 会议类型
// Map<String, String> meetingTypeMap = sysBaseAPI.queryDictItemsMapByCode("meeting_type");
int errorRowNum = 2;
List<String> errorMessage = new ArrayList<>();
List<PayMeetingHotelRecommend> insertList = new ArrayList<>();
for (Object obj : excelData) {
errorRowNum += 1;
PayMeetingHotelRecommendExcel submitExcel = (PayMeetingHotelRecommendExcel) obj;
PayMeetingHotelRecommend payMeetingHotelRecommend = new PayMeetingHotelRecommend();
List<String> 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(",请修改!<br/>");
}
throw new JeroBootException(msg.toString());
}
// 先将酒店推荐表清空
payMeetingHotelRecommendMapper.truncateTable();
// 全量导入
this.saveBatch(insertList);
}
}
@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.common.RoleCommon;
import com.jero.common.constant.CommonConstant; import com.jero.common.constant.CommonConstant;
import com.jero.common.dto.SendMessageDTO; import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.CompanyMessageEnums; 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.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.oss.service.IOSSFileService;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItemContacts; import com.jero.project.entity.PayWorkingGroupSubItemContacts;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemContactsService; import com.jero.project.service.IPayWorkingGroupSubItemContactsService;
import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.project.service.IPayWorkingGroupSubItemService;
@@ -157,6 +160,8 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
private SafetyCenterService safetyCenterService; private SafetyCenterService safetyCenterService;
@Resource @Resource
private SafetyCenterSubitemContactsService safetyCenterSubitemContactsService; private SafetyCenterSubitemContactsService safetyCenterSubitemContactsService;
@Resource
private AnnualDataLockingService annualDataLockingService;
/** /**
* 新增会议 * 新增会议
*/ */
@@ -338,6 +343,7 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
PayMeeting payMeeting = getPayMeeting(payMeetingVO, hotelContactsList); PayMeeting payMeeting = getPayMeeting(payMeetingVO, hotelContactsList);
saveOrUpdate(payMeeting); saveOrUpdate(payMeeting);
String meetingId = payMeeting.getId(); String meetingId = payMeeting.getId();
//annualDataLockingService.judgeUserYear()
// 同步预计到账日期 // 同步预计到账日期
LambdaUpdateWrapper<PayMeetingSituation> upPayMeetingSituation = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PayMeetingSituation> upPayMeetingSituation = new LambdaUpdateWrapper<>();
upPayMeetingSituation.eq(PayMeetingSituation::getMeetingId, meetingId); upPayMeetingSituation.eq(PayMeetingSituation::getMeetingId, meetingId);
@@ -454,9 +460,15 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
if (id != null) { if (id != null) {
wrapper.ne(PayMeeting::getId, id); wrapper.ne(PayMeeting::getId, id);
oldMeeting = getById(id); oldMeeting = getById(id);
String year = oldMeeting.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
}else { }else {
payMeetingVO.setIsRelease(MeetingCommon.REMIND_0); payMeetingVO.setIsRelease(MeetingCommon.REMIND_0);
} }
String year = payMeetingVO.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
if (count(wrapper) > 0) { if (count(wrapper) > 0) {
throw new JeroBootException("会议名称不能重复"); throw new JeroBootException("会议名称不能重复");
} }
@@ -489,6 +501,7 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
throw new JeroBootException("会议费用为0时,不可上传收款二维码"); throw new JeroBootException("会议费用为0时,不可上传收款二维码");
} }
} }
//根据会议类型进行校验 //根据会议类型进行校验
switch (meetingType) { switch (meetingType) {
case MeetingCommon.WORKING_GROUP_MEETING: case MeetingCommon.WORKING_GROUP_MEETING:
@@ -663,6 +676,10 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
if (integer > 0) { if (integer > 0) {
throw new JeroBootException("该会议有参会人无法删除"); throw new JeroBootException("该会议有参会人无法删除");
} }
PayMeeting payMeeting = getById(id);
String year = payMeeting.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
removeById(id); removeById(id);
LambdaQueryWrapper<PayMeetingHotelContacts> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayMeetingHotelContacts> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMeetingHotelContacts::getMeetingId, id); wrapper.eq(PayMeetingHotelContacts::getMeetingId, id);
@@ -685,6 +702,10 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
PayMeeting payMeeting = getById(id); PayMeeting payMeeting = getById(id);
meetingList.add(payMeeting.getMeetingName()); meetingList.add(payMeeting.getMeetingName());
} }
PayMeeting payMeeting = getById(id);
String year = payMeeting.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
} }
if (meetingList.size() > 0) { if (meetingList.size() > 0) {
throw new JeroBootException(meetingList + "会议下有参会人,无法删除"); throw new JeroBootException(meetingList + "会议下有参会人,无法删除");
@@ -76,12 +76,16 @@ import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.payment.entity.PayPaymentRecord; import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService; import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayWorkingGroupSubItemContacts; import com.jero.project.entity.PayWorkingGroupSubItemContacts;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.project.service.IPayWorkingGroupSubItemContactsService; import com.jero.project.service.IPayWorkingGroupSubItemContactsService;
import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.standards.memberinfo.service.IMemberInfoService; import com.jero.standards.memberinfo.service.IMemberInfoService;
import com.jero.statistics.entity.MeetingPackStatistics; import com.jero.statistics.entity.MeetingPackStatistics;
import com.jero.statistics.entity.MeetingPackStatisticsSearch; 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.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import com.jero.util.ObjRecordUtil; import com.jero.util.ObjRecordUtil;
@@ -173,7 +177,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
private ITbMemberProjectSubitemService tbMemberProjectSubitemService; private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Resource @Resource
private SafetyCenterSubitemContactsService safetyCenterSubitemContactsService; private SafetyCenterSubitemContactsService safetyCenterSubitemContactsService;
@Resource
private AnnualDataLockingService annualDataLockingService;
private static final String[] CAN_MODIFY_LIST = private static final String[] CAN_MODIFY_LIST =
new String[]{"arrivalTime", "departureTime", "checkInHotel"}; new String[]{"arrivalTime", "departureTime", "checkInHotel"};
@@ -199,12 +204,13 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
throw new JeroBootException("只有会议负责人,会议联系人可以新增参会人"); throw new JeroBootException("只有会议负责人,会议联系人可以新增参会人");
} }
} }
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payMeeting1.getParticularYear());
payMeetingSituation.setStatus(MeetingSubitemCommon.STATUS_3); payMeetingSituation.setStatus(MeetingSubitemCommon.STATUS_3);
//payMeetingSituation.setNeedInvoice(PayProjectCommon.NO); //payMeetingSituation.setNeedInvoice(PayProjectCommon.NO);
payMeetingSituation.setAmountReceivable(new BigDecimal("0")); payMeetingSituation.setAmountReceivable(new BigDecimal("0"));
//处理校验参会人信息 //处理校验参会人信息
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation); PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation,annualDataLocking);
payMeetingSituation1.setEstimatedArrivalDate(payMeeting1.getStartTime()); payMeetingSituation1.setEstimatedArrivalDate(payMeeting1.getStartTime());
saveMeetingSituation(payMeetingSituation1); saveMeetingSituation(payMeetingSituation1);
@@ -354,9 +360,11 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
payMeetingSituation.setGuestType(guestType); payMeetingSituation.setGuestType(guestType);
payMeetingSituation.setIdentity(MeetingSubitemCommon.JIA_BIN); payMeetingSituation.setIdentity(MeetingSubitemCommon.JIA_BIN);
} }
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payMeeting.getParticularYear());
//处理校验参会人信息 //处理校验参会人信息
payMeetingSituation.setAmountReceivable(new BigDecimal("0")); payMeetingSituation.setAmountReceivable(new BigDecimal("0"));
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation); PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation, annualDataLocking);
payMeetingSituation1.setEstimatedArrivalDate(payMeeting.getStartTime()); payMeetingSituation1.setEstimatedArrivalDate(payMeeting.getStartTime());
saveMeetingSituation(payMeetingSituation1); saveMeetingSituation(payMeetingSituation1);
//处理打包 //处理打包
@@ -591,7 +599,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
payPaymentRecord.setProjectId(payMeetingSituation.getId()); payPaymentRecord.setProjectId(payMeetingSituation.getId());
payPaymentRecord.setProof(payMeetingSituation.getPaymentRecord()); payPaymentRecord.setProof(payMeetingSituation.getPaymentRecord());
payPaymentRecord.setProjectType(Integer.parseInt(PayIncomeContractCommon.PROJECT_TYPE3)); payPaymentRecord.setProjectType(Integer.parseInt(PayIncomeContractCommon.PROJECT_TYPE3));
payPaymentRecord.setAmountReceived(payMeetingSituation.getAmountReceivable()); payPaymentRecord.setAmountReceived(payMeetingSituation.getAmountReceivable().subtract(payMeetingSituation.getPaidAmount()));
payPaymentRecord.setPaymentDate(new Date()); payPaymentRecord.setPaymentDate(new Date());
payPaymentRecords.add(payPaymentRecord); payPaymentRecords.add(payPaymentRecord);
//添加来款 //添加来款
@@ -1030,7 +1038,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
if (meetingType1 != null && !Objects.equals(payMeeting.getMeetingType(),meetingType1)) { if (meetingType1 != null && !Objects.equals(payMeeting.getMeetingType(),meetingType1)) {
throw new JeroBootException("数据权限不足"); throw new JeroBootException("数据权限不足");
} }
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payMeeting.getParticularYear());
//把原始数据保存下来,后面用于判断修改了那些字段 //把原始数据保存下来,后面用于判断修改了那些字段
PayMeetingSituation oldObject = new PayMeetingSituation(); PayMeetingSituation oldObject = new PayMeetingSituation();
BeanUtils.copyProperties(payMeetingSituation, oldObject); BeanUtils.copyProperties(payMeetingSituation, oldObject);
@@ -1084,7 +1093,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
} }
} }
} }
payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation); payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation, annualDataLocking);
//如果是对接人修改的 //如果是对接人修改的
if (sysUserId.equals(dockId)) { if (sysUserId.equals(dockId)) {
PayMeetingSituation newObject = new PayMeetingSituation(); PayMeetingSituation newObject = new PayMeetingSituation();
@@ -1144,7 +1153,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
* 处理校验参会人信息 * 处理校验参会人信息
*/ */
@NotNull @NotNull
private PayMeetingSituation getPayMeetingSituation(PayMeetingSituation payMeetingSituation) { private PayMeetingSituation getPayMeetingSituation(PayMeetingSituation payMeetingSituation, AnnualDataLocking annualDataLocking) {
String meetingId = payMeetingSituation.getMeetingId(); String meetingId = payMeetingSituation.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId); PayMeeting payMeeting = meetingService.getById(meetingId);
//会议类型 //会议类型
@@ -1168,12 +1177,12 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
PayCompanyManagement companyManagement = companyManagementService.getById(companyId); PayCompanyManagement companyManagement = companyManagementService.getById(companyId);
payMeetingSituation.setCompanyName(companyManagement.getCompanyName()); payMeetingSituation.setCompanyName(companyManagement.getCompanyName());
//处理企业 //处理企业
canHuiRenCompany(payMeetingSituation1, companyManagement); canHuiRenCompany(payMeetingSituation1, companyManagement, annualDataLocking);
//校验企业联系人 //校验企业联系人
String companyContactId = meetingEntity.getCompanyContactId(); String companyContactId = meetingEntity.getCompanyContactId();
PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId); PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId);
//处理联系人 //处理联系人
canHuiContact(payMeetingSituation1, companyId, contactsManagement); canHuiContact(payMeetingSituation1, companyId, contactsManagement, annualDataLocking);
//处理缴费凭证 //处理缴费凭证
payMeetingSituation1.setPaymentRecord(null); payMeetingSituation1.setPaymentRecord(null);
@@ -1511,7 +1520,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
return takeEffectInfo != null; return takeEffectInfo != null;
} }
private void canHuiContact(PayMeetingSituation payMeetingSituation, String companyId, PayContactsManagement contactsManagement) { private void canHuiContact(PayMeetingSituation payMeetingSituation, String companyId, PayContactsManagement contactsManagement, AnnualDataLocking annualDataLocking) {
if (contactsManagement == null) { if (contactsManagement == null) {
throw new JeroBootException("联系人不存在"); throw new JeroBootException("联系人不存在");
} }
@@ -1519,8 +1528,10 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
String contactsManagementId = contactsManagement.getId(); String contactsManagementId = contactsManagement.getId();
//校验是否是选择的企业的联系人 //校验是否是选择的企业的联系人
if (companyId1.equals(companyId)) { if (companyId1.equals(companyId)) {
payMeetingSituation.setCompanyContactTemporaryId(contactsManagementId); PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(contactsManagementId, annualDataLocking);
payMeetingSituation.setCompanyContactName(contactsManagement.getName());
payMeetingSituation.setCompanyContactTemporaryId(contactsName.getId());
payMeetingSituation.setCompanyContactName(contactsName.getName());
} else { } else {
throw new JeroBootException("企业联系人不是所选企业的企业联系人"); throw new JeroBootException("企业联系人不是所选企业的企业联系人");
} }
@@ -1536,12 +1547,14 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
} }
} }
private void canHuiRenCompany(PayMeetingSituation payMeetingSituation, PayCompanyManagement companyManagement) { private void canHuiRenCompany(PayMeetingSituation payMeetingSituation, PayCompanyManagement companyManagement, AnnualDataLocking annualDataLocking) {
if (companyManagement == null) { if (companyManagement == null) {
throw new JeroBootException("企业不存在"); throw new JeroBootException("企业不存在");
} }
payMeetingSituation.setCompanyTemporaryId(companyManagement.getId()); PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(companyManagement.getId(), annualDataLocking);
payMeetingSituation.setCompanyName(companyManagement.getCompanyName());
payMeetingSituation.setCompanyTemporaryId(chargeCompanyName.getId());
payMeetingSituation.setCompanyName(chargeCompanyName.getCompanyName());
} }
/** /**
@@ -1549,6 +1562,11 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
*/ */
@Override @Override
public void deleteById(String id) { public void deleteById(String id) {
PayMeetingSituation meetingSituation = this.getById(id);
String meetingId = meetingSituation.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payMeeting.getParticularYear());
removeSituationPack(id); removeSituationPack(id);
removeById(id); removeById(id);
} }
@@ -1558,6 +1576,13 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
*/ */
@Override @Override
public void deleteByIds(List<String> ids) { public void deleteByIds(List<String> ids) {
List<PayMeetingSituation> payMeetingSituations = this.listByIds(ids);
List<String> meetingIds = payMeetingSituations.stream().map(PayMeetingSituation::getMeetingId).distinct().collect(Collectors.toList());
List<PayMeeting> payMeetings = meetingService.listByIds(meetingIds);
for (PayMeeting payMeeting : payMeetings) {
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payMeeting.getParticularYear());
}
for (String id : ids) { for (String id : ids) {
removeSituationPack(id); removeSituationPack(id);
} }
@@ -1743,16 +1768,18 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
String meetingType1 = getMeetingType(payMeetingSituation); String meetingType1 = getMeetingType(payMeetingSituation);
List<Object> exportList = new ArrayList<>(); List<Object> exportList = new ArrayList<>();
for (PayMeetingSituation meetingSituation : pageList) { for (PayMeetingSituation meetingSituation : pageList) {
String companyId = meetingSituation.getCompanyId();
String companyTemporaryId = meetingSituation.getCompanyTemporaryId();
String companyContactId = meetingSituation.getCompanyContactId(); String companyContactId = meetingSituation.getCompanyContactId();
PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId); String companyContactTemporaryId = meetingSituation.getCompanyContactTemporaryId();
PayContactsManagementTemporary contactsManagement = contactsManagementTemporaryService.getByAllTable(companyContactId, companyContactTemporaryId);
meetingSituation.setCompanyContactName(contactsManagement.getName()); meetingSituation.setCompanyContactName(contactsManagement.getName());
if (!MeetingCommon.INTERNATIONAL_MEETING.equals(meetingType1)){ if (!MeetingCommon.INTERNATIONAL_MEETING.equals(meetingType1)){
meetingSituation.setPost(contactsManagement.getPost()); meetingSituation.setPost(contactsManagement.getPost());
} }
meetingSituation.setPhone(PasswordUtil.decrypt(contactsManagement.getPhone())); meetingSituation.setPhone(PasswordUtil.decrypt(contactsManagement.getPhone()));
meetingSituation.setEmail(PasswordUtil.decrypt(contactsManagement.getEmail())); meetingSituation.setEmail(PasswordUtil.decrypt(contactsManagement.getEmail()));
PayCompanyManagement companyManagement = companyManagementService.getById(contactsManagement.getCompanyId()); PayCompanyManagementTemporary companyManagement = companyManagementTemporaryService.getByAllTable(companyId, companyTemporaryId);
meetingSituation.setCompanyName(companyManagement.getCompanyName()); meetingSituation.setCompanyName(companyManagement.getCompanyName());
String checkFile = meetingSituation.getCheckFile(); String checkFile = meetingSituation.getCheckFile();
if (StringUtils.isNotBlank(checkFile)) { if (StringUtils.isNotBlank(checkFile)) {
@@ -2137,8 +2164,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
if (!StringUtils.isBlank(metingPackStatisticsSearch.getPayMode())) { if (!StringUtils.isBlank(metingPackStatisticsSearch.getPayMode())) {
query.lambda().eq(PayMeetingSituation::getPayMode, metingPackStatisticsSearch.getPayMode()); query.lambda().eq(PayMeetingSituation::getPayMode, metingPackStatisticsSearch.getPayMode());
} }
if (!StringUtils.isBlank(metingPackStatisticsSearch.getPaymentYear())) { if (!StringUtils.isBlank(metingPackStatisticsSearch.getYear())) {
query.eq("payment_year", metingPackStatisticsSearch.getPaymentYear()); query.eq("year", metingPackStatisticsSearch.getYear());
} }
return query; return query;
} }
@@ -13,4 +13,5 @@ public class CheckVO {
private Integer checkResult; private Integer checkResult;
private String checkRemark; private String checkRemark;
private String id; private String id;
private String ids;
} }
@@ -0,0 +1,67 @@
package com.jero.meeting.vo.excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
* <p>
* 会议酒店推荐表
* </p>
*
* @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;
}
@@ -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<TbMemberProjectSubitem, ITbMemberProjectSubitemService> {
@Resource
private IAnnualMemberProjectService annualMemberProjectService;
/**
* 分页列表查询
*/
@RequiresPermissions("memberStatistic:search")
@ApiOperation(value="年度会员维护-分页列表查询", notes="年度会员维护-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<TbMemberProjectSubitem>> queryPageList(TbMemberProjectSubitem tbMemberProjectSubitem,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
Page<TbMemberProjectSubitem> page = new Page<>(pageNo, pageSize);
IPage<TbMemberProjectSubitem> 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<TbMemberProjectSubitem> pageList = annualMemberProjectService.pageList(req, tbMemberProjectSubitem);
List<TbMemberProjectSubitem> recordList;
// 过滤选中数据
String selections = req.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
recordList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
} else {
recordList = pageList;
}
List<AnnualMemberProjectExcelVO> 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, "会员信息统计");
}
}
@@ -2,6 +2,7 @@ package com.jero.member.controller;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.member.vo.PayMemberProjectSubitemExcel; import com.jero.member.vo.PayMemberProjectSubitemExcel;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayWorkingGroupSubItem;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.base.controller.JeroController;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
@@ -87,6 +89,17 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
HttpServletRequest req) { HttpServletRequest req) {
Map<String, String[]> parameterMap = req.getParameterMap(); Map<String, String[]> parameterMap = req.getParameterMap();
QueryWrapper<PayMemberProjectSubitem> queryWrapper = QueryGenerator.initQueryWrapper(payMemberProjectSubitem, parameterMap); QueryWrapper<PayMemberProjectSubitem> 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(); String estimatedArrivalStartDate = payMemberProjectSubitem.getEstimatedArrivalStartDate();
// 预计到账结束日期 // 预计到账结束日期
@@ -112,6 +125,17 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
} }
Page<PayMemberProjectSubitem> page = new Page<>(pageNo, pageSize); Page<PayMemberProjectSubitem> page = new Page<>(pageNo, pageSize);
IPage<PayMemberProjectSubitem> pageList = memberProjectSubitemService.getPage(page, queryWrapper); IPage<PayMemberProjectSubitem> pageList = memberProjectSubitemService.getPage(page, queryWrapper);
if(!CollectionUtils.isEmpty(pageList.getRecords())){
List<PayMemberProjectSubitem> 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); return Result.OK(pageList);
} }
@@ -170,6 +194,7 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
if (Objects.isNull(payMemberProjectSubitem.getEstimatedArrivalDate())) { if (Objects.isNull(payMemberProjectSubitem.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空"); return Result.error("预估到账日期不能为空");
} }
payMemberProjectSubitem.setEstimatedArrivalDate(payMemberProjectSubitem.getEstimatedArrivalDate() + "-01");
memberProjectService.check(payMemberProjectSubitem.getProjectId(),"safeguardMember:add"); memberProjectService.check(payMemberProjectSubitem.getProjectId(),"safeguardMember:add");
ValidUtil.validate(payMemberProjectSubitem); ValidUtil.validate(payMemberProjectSubitem);
memberProjectSubitemService.add(payMemberProjectSubitem); memberProjectSubitemService.add(payMemberProjectSubitem);
@@ -187,6 +212,7 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
if (Objects.isNull(payMemberProjectSubitem.getEstimatedArrivalDate())) { if (Objects.isNull(payMemberProjectSubitem.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空"); return Result.error("预估到账日期不能为空");
} }
payMemberProjectSubitem.setEstimatedArrivalDate(payMemberProjectSubitem.getEstimatedArrivalDate() + "-01");
memberProjectSubitemService.check(payMemberProjectSubitem.getId(),"safeguardMember:edit"); memberProjectSubitemService.check(payMemberProjectSubitem.getId(),"safeguardMember:edit");
ValidUtil.validate(payMemberProjectSubitem); ValidUtil.validate(payMemberProjectSubitem);
memberProjectSubitemService.editById(payMemberProjectSubitem); memberProjectSubitemService.editById(payMemberProjectSubitem);
@@ -249,6 +275,32 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
if (!rolePermissionService.getRolePermission("safeguardMember:export")) { if (!rolePermissionService.getRolePermission("safeguardMember:export")) {
queryWrapper.eq("pmp.director_id",sysUser.getId()); queryWrapper.eq("pmp.director_id",sysUser.getId());
} }
// 处理预计到账开始日期,拼接 -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();
// 预计到账结束日期
String estimatedArrivalEndDate = payMemberProjectSubitem.getEstimatedArrivalEndDate();
if (ObjectUtil.isNotEmpty(estimatedArrivalStartDate) && ObjectUtil.isNotEmpty(estimatedArrivalEndDate)) {
queryWrapper.lambda().ge(PayMemberProjectSubitem::getEstimatedArrivalDate,estimatedArrivalStartDate);
queryWrapper.lambda().le(PayMemberProjectSubitem::getEstimatedArrivalDate,estimatedArrivalEndDate);
}
if (ObjectUtil.isNotEmpty(estimatedArrivalStartDate) && ObjectUtil.isEmpty(estimatedArrivalEndDate)) {
queryWrapper.lambda().ge(PayMemberProjectSubitem::getEstimatedArrivalDate,estimatedArrivalStartDate);
}
if (ObjectUtil.isEmpty(estimatedArrivalEndDate) && ObjectUtil.isNotEmpty(estimatedArrivalEndDate)) {
queryWrapper.lambda().le(PayMemberProjectSubitem::getEstimatedArrivalDate,estimatedArrivalEndDate);
}
Page<PayMemberProjectSubitem> page = new Page<>(-1, -1); Page<PayMemberProjectSubitem> page = new Page<>(-1, -1);
IPage<PayMemberProjectSubitem> getPage = memberProjectSubitemService.getPage(page, queryWrapper); IPage<PayMemberProjectSubitem> getPage = memberProjectSubitemService.getPage(page, queryWrapper);
List<PayMemberProjectSubitem> pageList = getPage.getRecords(); List<PayMemberProjectSubitem> pageList = getPage.getRecords();
@@ -265,6 +317,11 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
memberProjectSubitem.setPostContactMail(PasswordUtil.decrypt(contactsManagement.getEmail())); memberProjectSubitem.setPostContactMail(PasswordUtil.decrypt(contactsManagement.getEmail()));
memberProjectSubitem.setPostContactAddress(contactsManagement.getContactAddress()); memberProjectSubitem.setPostContactAddress(contactsManagement.getContactAddress());
memberProjectSubitem.setContactPostCode(contactsManagement.getPostalCode()); memberProjectSubitem.setContactPostCode(contactsManagement.getPostalCode());
if(StringUtils.isNotBlank(memberProjectSubitem.getEstimatedArrivalDate())){
String estimatedArrivalDate = memberProjectSubitem.getEstimatedArrivalDate();
String formattedDate = estimatedArrivalDate.substring(0, 7);
memberProjectSubitem.setEstimatedArrivalDate(formattedDate);
}
} }
return super.exportListXls(pageList, PayMemberProjectSubitem.class, "会员项目成员表"); return super.exportListXls(pageList, PayMemberProjectSubitem.class, "会员项目成员表");
} }
@@ -319,7 +376,8 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
errorMessage.add("第" + errorRowNum + "行:预估到账日期不能为空"); errorMessage.add("第" + errorRowNum + "行:预估到账日期不能为空");
}else { }else {
try { try {
LocalDate.parse(estimatedArrivalDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")); projectSubitemExcel.setEstimatedArrivalDate(estimatedArrivalDate + "-01");
LocalDate.parse(estimatedArrivalDate + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
}catch (Exception e) { }catch (Exception e) {
errorMessage.add("第" + errorRowNum + "行:预估到账日期格式不正确"); errorMessage.add("第" + errorRowNum + "行:预估到账日期格式不正确");
} }
@@ -182,18 +182,18 @@ public class TbCertificatePaymentController extends JeroController<TbCertificate
@PostMapping(value = "/incomingUpdateCertificate") @PostMapping(value = "/incomingUpdateCertificate")
public Result<Object> incomingUpdateCertificate(@RequestBody TbCertificatePayment tbCertificatePayment){ public Result<Object> incomingUpdateCertificate(@RequestBody TbCertificatePayment tbCertificatePayment){
CertificatePaymentInfo certificatePaymentInfo = new CertificatePaymentInfo(); //CertificatePaymentInfo certificatePaymentInfo = new CertificatePaymentInfo();
certificatePaymentInfo.setId(tbCertificatePayment.getTbPaymentId()); //certificatePaymentInfo.setId(tbCertificatePayment.getTbPaymentId());
certificatePaymentInfo.setMemberId(tbCertificatePayment.getMemberId()); //certificatePaymentInfo.setMemberId(tbCertificatePayment.getMemberId());
certificatePaymentInfo.setInvoiceRequirements(tbCertificatePayment.getInvoiceRequirements()); //certificatePaymentInfo.setInvoiceRequirements(tbCertificatePayment.getInvoiceRequirements());
certificatePaymentInfo.setHeaderName(tbCertificatePayment.getHeaderName()); //certificatePaymentInfo.setHeaderName(tbCertificatePayment.getHeaderName());
certificatePaymentInfo.setTaxNumber(tbCertificatePayment.getTaxNumber()); //certificatePaymentInfo.setTaxNumber(tbCertificatePayment.getTaxNumber());
certificatePaymentInfo.setInvoiceAddress(tbCertificatePayment.getInvoiceAddress()); //certificatePaymentInfo.setInvoiceAddress(tbCertificatePayment.getInvoiceAddress());
certificatePaymentInfo.setInvoicePhone(tbCertificatePayment.getInvoicePhone()); //certificatePaymentInfo.setInvoicePhone(tbCertificatePayment.getInvoicePhone());
certificatePaymentInfo.setDepositBank(tbCertificatePayment.getDepositBank()); //certificatePaymentInfo.setDepositBank(tbCertificatePayment.getDepositBank());
certificatePaymentInfo.setBankAccount(tbCertificatePayment.getBankAccount()); //certificatePaymentInfo.setBankAccount(tbCertificatePayment.getBankAccount());
//
AuthenticationUtils.post("/certificatePaymentInfo/incomingUpdateCertificate",null,certificatePaymentInfo); //AuthenticationUtils.post("/certificatePaymentInfo/incomingUpdateCertificate",null,certificatePaymentInfo);
return Result.OK(); return Result.OK();
} }
@@ -1,29 +1,25 @@
package com.jero.member.controller; package com.jero.member.controller;
import java.util.ArrayList; import java.time.LocalDate;
import java.util.Arrays; import java.time.YearMonth;
import java.util.List; import java.time.format.DateTimeFormatter;
import java.util.Map; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.date.DatePattern; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.query.QueryGenerator; 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.system.vo.LoginUser;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil; import com.jero.common.util.PasswordUtil;
import com.jero.common.util.oConvertUtils; 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.TbMemberProject;
import com.jero.member.entity.TbMemberProjectSubitem; import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.ITbMemberProjectSubitemService; 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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.member.vo.*; 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 lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.base.controller.JeroController;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -60,6 +60,15 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
private ITbMemberProjectSubitemService tbMemberProjectSubitemService; private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Resource @Resource
private ISysBaseAPI sysBaseAPI; private ISysBaseAPI sysBaseAPI;
@Resource
private IPayCompanyManagementService payCompanyManagementService;
@Resource
private IPayContactsManagementService payContactsManagementService;
@Resource
private IPayCompanyManagementTemporaryService companyManagementTemporaryService;
@Resource
private IPayContactsManagementTemporaryService contactsManagementTemporaryService;
/** /**
* 分页列表查询 * 分页列表查询
*/ */
@@ -72,6 +81,17 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) { HttpServletRequest req) {
Page<TbMemberProjectSubitem> page = new Page<>(pageNo, pageSize); Page<TbMemberProjectSubitem> 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<TbMemberProjectSubitem> pageList = tbMemberProjectSubitemService.pageList(page, req, tbMemberProjectSubitem); IPage<TbMemberProjectSubitem> pageList = tbMemberProjectSubitemService.pageList(page, req, tbMemberProjectSubitem);
for (TbMemberProjectSubitem record : pageList.getRecords()) { for (TbMemberProjectSubitem record : pageList.getRecords()) {
record.setEmail(PasswordUtil.decrypt(record.getEmail())); record.setEmail(PasswordUtil.decrypt(record.getEmail()));
@@ -264,6 +284,17 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
@RequiresPermissions("safeguardStardsMember:export") @RequiresPermissions("safeguardStardsMember:export")
@GetMapping(value = "/exportXls") @GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem) { public ModelAndView exportXls(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem) {
// 处理预计到账开始日期,拼接 -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")));
}
List<TbMemberProjectSubitem> pageList = tbMemberProjectSubitemService.pageList(request,tbMemberProjectSubitem); List<TbMemberProjectSubitem> pageList = tbMemberProjectSubitemService.pageList(request,tbMemberProjectSubitem);
List<TbMemberProjectSubitem> exportList; List<TbMemberProjectSubitem> exportList;
// 过滤选中数据 // 过滤选中数据
@@ -274,7 +305,27 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
} else { } else {
exportList = pageList; exportList = pageList;
} }
for (TbMemberProjectSubitem memberProjectSubitem : exportList) {
String companyId = memberProjectSubitem.getCompanyId();
String companyTemporaryId = memberProjectSubitem.getCompanyTemporaryId();
String liaisonManId = memberProjectSubitem.getLiaisonManId();
String companyContactTemporaryId = memberProjectSubitem.getCompanyContactTemporaryId();
if (StringUtils.isNotBlank(companyId)) {
PayCompanyManagementTemporary payCompanyManagement = companyManagementTemporaryService.getByAllTable(companyId, companyTemporaryId);
if (!Objects.isNull(payCompanyManagement)) {
memberProjectSubitem.setDutyCode(payCompanyManagement.getDutyCode());
}
}
if (StringUtils.isNotBlank(liaisonManId)) {
PayContactsManagementTemporary payContactsManagement = contactsManagementTemporaryService.getByAllTable(liaisonManId, companyContactTemporaryId);
if (!Objects.isNull(payContactsManagement)) {
memberProjectSubitem.setEmail(payContactsManagement.getEmail());
memberProjectSubitem.setMobile(PasswordUtil.decrypt(payContactsManagement.getPhone()));
memberProjectSubitem.setContactAddress(payContactsManagement.getContactAddress());
memberProjectSubitem.setPostalCode(payContactsManagement.getPostalCode());
}
}
}
return super.exportListXls(exportList, TbMemberProjectSubitem.class, "标协会员项目成员表"); return super.exportListXls(exportList, TbMemberProjectSubitem.class, "标协会员项目成员表");
} }
@@ -78,6 +78,10 @@ public class TbMemberProjectSubitem implements Serializable {
@Excel(name = "会员单位", width = 15, dictTable = "pay_company_management", dicText = "company_name", dicCode = "id") @Excel(name = "会员单位", width = 15, dictTable = "pay_company_management", dicText = "company_name", dicCode = "id")
@Dict(dictTable = "pay_company_management", dicText = "company_name", dicCode = "id") @Dict(dictTable = "pay_company_management", dicText = "company_name", dicCode = "id")
private String companyId; private String companyId;
/**
* 企业临时id
*/
private String companyTemporaryId;
/**会员单位*/ /**会员单位*/
@ApiModelProperty(value = "会员单位") @ApiModelProperty(value = "会员单位")
@@ -100,10 +104,36 @@ public class TbMemberProjectSubitem implements Serializable {
@Dict(dictTable = "pay_contacts_management", dicText = "name", dicCode = "id") @Dict(dictTable = "pay_contacts_management", dicText = "name", dicCode = "id")
private String liaisonManId; private String liaisonManId;
/**
* 企业联系人临时id
*/
private String companyContactTemporaryId;
/**联系人*/ /**联系人*/
@ApiModelProperty(value = "联系人") @ApiModelProperty(value = "联系人")
private String liaisonMan; private String liaisonMan;
/**邮箱*/
@Excel(name = "联系人邮箱", width = 20,exportConvert = true)
@ApiModelProperty(value = "邮箱")
private String email;
/**手机*/
@Excel(name = "联系人手机", width = 15,exportConvert = true)
@ApiModelProperty(value = "手机")
private String mobile;
/**通讯地址*/
@Excel(name = "联系人通讯地址", width = 15)
@ApiModelProperty(value = "通讯地址")
@TableField(exist = false)
private String contactAddress;
/**邮政编码*/
@Excel(name = "联系人邮政编码", width = 15)
@ApiModelProperty(value = "邮政编码")
@TableField(exist = false)
private String postalCode;
@ApiModelProperty(value = "邮寄企业id") @ApiModelProperty(value = "邮寄企业id")
private String postCompanyId; private String postCompanyId;
@@ -111,15 +141,10 @@ public class TbMemberProjectSubitem implements Serializable {
@Excel(name = "邮寄联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id") @Excel(name = "邮寄联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id")
private String postContactId; private String postContactId;
/**邮箱*/ /**
//@Excel(name = "邮箱", width = 20,exportConvert = true) * 邮寄联系人临时id
@ApiModelProperty(value = "邮箱") */
private String email; private String postContactTemporaryId;
/**手机*/
//@Excel(name = "手机", width = 15,exportConvert = true)
@ApiModelProperty(value = "手机")
private String mobile;
/**会员状态*/ /**会员状态*/
//@Excel(name = "会员状态", width = 15, dicCode = "member_status") //@Excel(name = "会员状态", width = 15, dicCode = "member_status")
@@ -174,12 +199,22 @@ public class TbMemberProjectSubitem implements Serializable {
private BigDecimal confirmAmount; private BigDecimal confirmAmount;
/**预估到账日期*/ /**预估到账日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM")
@DateTimeFormat(pattern="yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预估到账日期") @ApiModelProperty(value = "预估到账日期")
@Excel(name = "预估到账日期", width = 15, format = "yyyy-MM-dd") @Excel(name = "预估到账日期", width = 15, format = "yyyy-MM")
private Date estimatedArrivalDate; private Date estimatedArrivalDate;
/**预计到账开始日期*/
@ApiModelProperty(value = "预计到账开始的日期")
@TableField(exist = false)
private String estimatedArrivalDate_begin;
/**预计到账结束的日期*/
@ApiModelProperty(value = "预计到账结束的日期")
@TableField(exist = false)
private String estimatedArrivalDate_end;
/**需要发票*/ /**需要发票*/
@Excel(name = "需要发票", width = 15,dicCode = "invoice_type") @Excel(name = "需要发票", width = 15,dicCode = "invoice_type")
@ApiModelProperty(value = "需要发票") @ApiModelProperty(value = "需要发票")
@@ -194,13 +229,16 @@ public class TbMemberProjectSubitem implements Serializable {
/**到账*/ /**到账*/
@ApiModelProperty(value = "到账") @ApiModelProperty(value = "到账")
@Excel(name = "是否到账", width = 15, dicCode = "account_type")
private Integer inAccount; private Integer inAccount;
/**开票*/ /**开票*/
@ApiModelProperty(value = "开票") @ApiModelProperty(value = "开票")
@Excel(name = "是否开票", width = 15, dicCode = "make_invoice_type")
private Integer makeInvoice; private Integer makeInvoice;
@ApiModelProperty(value = "确认收入((1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志)))") @ApiModelProperty(value = "确认收入((1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志)))")
@Excel(name = "是否确收", width = 15, dicCode = "affirmi_ncome")
private Integer affirmIncome; private Integer affirmIncome;
/**邮寄*/ /**邮寄*/
@@ -209,7 +247,7 @@ public class TbMemberProjectSubitem implements Serializable {
/**提票"*/ /**提票"*/
@ApiModelProperty(value = "提票") @ApiModelProperty(value = "提票")
//@Excel(name = "提票", width = 15,dicCode = "yn") @Excel(name = "是否提票", width = 15,dicCode = "yn")
@Dict(dicCode = "yn") @Dict(dicCode = "yn")
private Integer ticketCollection; private Integer ticketCollection;
@@ -400,4 +438,9 @@ public class TbMemberProjectSubitem implements Serializable {
@ApiModelProperty(value = "权益状态") @ApiModelProperty(value = "权益状态")
@TableField(exist = false) @TableField(exist = false)
private String equityStatus; private String equityStatus;
@ApiModelProperty(value = "信用代码")
@TableField(exist = false)
@Excel(name = "信用代码", width = 15)
private String dutyCode;
} }
@@ -0,0 +1,20 @@
package com.jero.member.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.member.entity.TbMemberProjectSubitem;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 年度会员维护
*/
public interface AnnualMemberProjectMapper {
IPage<TbMemberProjectSubitem> pageList(Page<TbMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<TbMemberProjectSubitem> queryWrapper);
List<TbMemberProjectSubitem> pageList(@Param(Constants.WRAPPER) QueryWrapper<TbMemberProjectSubitem> queryWrapper);
}
@@ -23,4 +23,7 @@ public interface PayMemberProjectSubitemMapper extends BaseMapper<PayMemberProje
List<PayMemberProjectSubitem> queryPageListCompany(@Param(Constants.WRAPPER) QueryWrapper<PayMemberProjectSubitem> queryWrapper); List<PayMemberProjectSubitem> queryPageListCompany(@Param(Constants.WRAPPER) QueryWrapper<PayMemberProjectSubitem> queryWrapper);
IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<PayMemberProjectSubitem> queryWrapper); IPage<PayMemberProjectSubitem> getPage(Page<PayMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<PayMemberProjectSubitem> queryWrapper);
List<PayMemberProjectSubitem> listByYear(@Param("year") String year);
} }
@@ -61,4 +61,8 @@ public interface TbMemberProjectSubitemMapper extends BaseMapper<TbMemberProject
IPage<TbMemberProjectSubitem> pageAllMemberName(Page<TbMemberProjectSubitem> page); IPage<TbMemberProjectSubitem> pageAllMemberName(Page<TbMemberProjectSubitem> page);
List<TbMemberProjectSubitem> getAllYearInfoByCompanyId(@Param("companyId") String companyId); List<TbMemberProjectSubitem> getAllYearInfoByCompanyId(@Param("companyId") String companyId);
List<TbMemberProjectSubitem> listByYear(@Param("year") String year);
List<TbMemberProjectSubitem> queryListCompanyYear(@Param(Constants.WRAPPER) QueryWrapper<TbMemberProjectSubitem> queryTbMemberProjectSubitem);
} }
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.member.mapper.AnnualMemberProjectMapper">
<resultMap id="AnnualMemberProjectResultMap" type="com.jero.member.entity.TbMemberProjectSubitem">
<id column="id" property="id" />
<result column="id" property="id" />
<result column="company_name" property="companyName" />
<result column="member_no" property="memberNo" />
<result column="member_status" property="memberStatus" />
<result column="liaison_man_id" property="liaisonManId" />
<result column="effective_date" property="effectiveDateStr" />
<result column="invalidation_date" property="invalidationDateStr" />
</resultMap>
<select id="pageList" resultMap="AnnualMemberProjectResultMap">
select
vmps.*
from v_member_project_subitem vmps
LEFT JOIN tb_member_project tmp on tmp.id = vmps.project_id
${ew.customSqlSegment}
</select>
</mapper>
@@ -62,7 +62,6 @@
<select id="getPage" resultMap="MemberProjectSubitemResultMap"> <select id="getPage" resultMap="MemberProjectSubitemResultMap">
select pmps.id,pmps.create_by,pmps.create_time,pmps.update_by,pmps.update_time,pmps.project_id,pmps.company_id,pmps.company_temporary_id, select pmps.id,pmps.create_by,pmps.create_time,pmps.update_by,pmps.update_time,pmps.project_id,pmps.company_id,pmps.company_temporary_id,
# if(pmps.company_name = pcm.company_name, pmps.company_name, concat(pmps.company_name,'(更名为',pcm.company_name,')')) as company_name,
IF( IF(
pmps.company_name = pmps.company_name =
IF( IF(
@@ -82,12 +81,18 @@
pmps.estimated_arrival_date pmps.estimated_arrival_date
from pay_member_project_subitem pmps from pay_member_project_subitem pmps
left join pay_member_project pmp on pmps.project_id = pmp.id left join pay_member_project pmp on pmps.project_id = pmp.id
left join pay_company_management_temporary pcmt on pmps.company_temporary_id = pcmt.id left join pay_company_management pcm on pmps.company_id = pcm.id
left join pay_company_management pcm on pcmt.company_id = pcm.id
${ew.customSqlSegment} ${ew.customSqlSegment}
<where> <where>
</where> </where>
</select> </select>
<select id="listByYear" resultType="com.jero.member.entity.PayMemberProjectSubitem">
select pmps.*
from pay_member_project_subitem pmps
left join pay_member_project pmp on pmps.project_id = pmp.id
where pmp.particular_year = #{year}
</select>
</mapper> </mapper>
@@ -70,6 +70,7 @@
<result column="invalidation_date" property="invalidationDate"/> <result column="invalidation_date" property="invalidationDate"/>
<result column="year" property="year"/> <result column="year" property="year"/>
</resultMap> </resultMap>
<select id="queryListByCompany" resultType="com.jero.member.entity.TbMemberProjectSubitem"> <select id="queryListByCompany" resultType="com.jero.member.entity.TbMemberProjectSubitem">
SELECT tmps.*,tmp.project_name,#{projectType} AS projectType FROM tb_member_project_subitem tmps SELECT tmps.*,tmp.project_name,#{projectType} AS projectType FROM tb_member_project_subitem tmps
LEFT JOIN tb_member_project tmp ON tmps.project_id = tmp.id LEFT JOIN tb_member_project tmp ON tmps.project_id = tmp.id
@@ -87,10 +88,37 @@
GROUP BY tmps.id ORDER BY tmps.create_time DESC GROUP BY tmps.id ORDER BY tmps.create_time DESC
</select> </select>
<select id="pageList" resultMap="TbMemberProjectSubitemResultMap"> <select id="pageList" resultType="com.jero.member.entity.TbMemberProjectSubitem">
select distinct tmps.* 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 from tb_member_project_subitem tmps
LEFT JOIN tb_member_project tmp on tmp.id = tmps.project_id 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} ${ew.customSqlSegment}
</select> </select>
@@ -169,4 +197,18 @@
tmps.company_id = #{companyId} tmps.company_id = #{companyId}
</where> </where>
</select> </select>
<select id="listByYear" resultType="com.jero.member.entity.TbMemberProjectSubitem">
select tmps.*,tmp.year
from tb_member_project_subitem tmps
LEFT JOIN tb_member_project tmp on tmp.id = tmps.project_id
where tmp.year = #{year}
</select>
<select id="queryListCompanyYear" resultMap="TbMemberProjectSubitemResultMap">
select tmps.*
from tb_member_project_subitem tmps
LEFT JOIN tb_member_project tmp on tmp.id = tmps.project_id
${ew.customSqlSegment}
</select>
</mapper> </mapper>
@@ -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<TbMemberProjectSubitem> pageList(Page<TbMemberProjectSubitem> page, HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem) {
QueryWrapper<TbMemberProjectSubitem> queryWrapper = generateQueryWrapper(request, tbMemberProjectSubitem);
return annualMemberProjectMapper.pageList(page,queryWrapper);
}
public List<TbMemberProjectSubitem> pageList(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem) {
QueryWrapper<TbMemberProjectSubitem> queryWrapper = generateQueryWrapper(request, tbMemberProjectSubitem);
return annualMemberProjectMapper.pageList(queryWrapper);
}
private QueryWrapper<TbMemberProjectSubitem> generateQueryWrapper(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem){
QueryWrapper<TbMemberProjectSubitem> 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;
}
}
@@ -17,7 +17,9 @@ import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper; import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayCommonProject;
import com.jero.project.service.AnnualDataLockingService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -51,6 +53,8 @@ public class IPayMemberProjectService extends ServiceImpl<PayMemberProjectMapper
private IPayIncomeContractService payIncomeContractService; private IPayIncomeContractService payIncomeContractService;
@Resource @Resource
private RolePermissionService rolePermissionService; private RolePermissionService rolePermissionService;
@Resource
private AnnualDataLockingService annualDataLockingService;
/** /**
* 保存 * 保存
* *
@@ -66,6 +70,9 @@ public class IPayMemberProjectService extends ServiceImpl<PayMemberProjectMapper
if (integer>0){ if (integer>0){
throw new JeroBootException("项目名称重复"); throw new JeroBootException("项目名称重复");
} }
String year = payMemberProject.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
//判断联系人 //判断联系人
String directorId = payMemberProject.getDirectorId(); String directorId = payMemberProject.getDirectorId();
SysUser sysUser = userMapper.selectById(directorId); SysUser sysUser = userMapper.selectById(directorId);
@@ -83,6 +90,16 @@ public class IPayMemberProjectService extends ServiceImpl<PayMemberProjectMapper
* @return * @return
*/ */
public void editById(PayMemberProject payMemberProject) { public void editById(PayMemberProject payMemberProject) {
String year = payMemberProject.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
String id = payMemberProject.getId();
PayMemberProject memberProjectOld = this.getById(id);
String year1 = memberProjectOld.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking1 = annualDataLockingService.judgeUserYear(year1);
saveOrUpdate(payMemberProject); saveOrUpdate(payMemberProject);
} }
@@ -93,6 +110,11 @@ public class IPayMemberProjectService extends ServiceImpl<PayMemberProjectMapper
* @return * @return
*/ */
public void deleteById(String id) { public void deleteById(String id) {
PayMemberProject memberProjectOld = this.getById(id);
String year1 = memberProjectOld.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year1);
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.eq(PayMemberProjectSubitem::getProjectId, id); query.eq(PayMemberProjectSubitem::getProjectId, id);
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query); List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
@@ -109,6 +131,12 @@ public class IPayMemberProjectService extends ServiceImpl<PayMemberProjectMapper
* @return * @return
*/ */
public void deleteByIds(List<String> ids) { public void deleteByIds(List<String> ids) {
for (String id : ids) {
PayMemberProject memberProjectOld = this.getById(id);
String year1 = memberProjectOld.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year1);
}
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.in(PayMemberProjectSubitem::getProjectId, ids); query.in(PayMemberProjectSubitem::getProjectId, ids);
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query); List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
@@ -25,11 +25,11 @@ import com.jero.member.entity.PayMemberProject;
import com.jero.member.entity.PayMemberProjectSubitem; import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.mapper.PayMemberProjectMapper; import com.jero.member.mapper.PayMemberProjectMapper;
import com.jero.member.mapper.PayMemberProjectSubitemMapper; 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.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.project.common.PayProjectCommon; 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.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
@@ -80,6 +80,8 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
private PayMemberProjectMapper payMemberProjectMapper; private PayMemberProjectMapper payMemberProjectMapper;
@Resource @Resource
private IPayMailBillService payMailBillService; private IPayMailBillService payMailBillService;
@Resource
private AnnualDataLockingService annualDataLockingService;
/** /**
* 保存 * 保存
*/ */
@@ -89,6 +91,9 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
if (memberProject == null){ if (memberProject == null){
throw new JeroBootException("会员项目不存在"); throw new JeroBootException("会员项目不存在");
} }
String year = memberProject.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
String companyId = payMemberProjectSubitem.getCompanyId(); String companyId = payMemberProjectSubitem.getCompanyId();
LambdaQueryWrapper<PayMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMemberProjectSubitem::getProjectId,projectId); wrapper.eq(PayMemberProjectSubitem::getProjectId,projectId);
@@ -97,8 +102,7 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
if (count>0){ if (count>0){
throw new JeroBootException("会员单位已经存在"); throw new JeroBootException("会员单位已经存在");
} }
// validMemberProjectSubitem(payMemberProjectSubitem); validMemberProjectSubitemAdd(payMemberProjectSubitem,annualDataLocking);
validMemberProjectSubitemAdd(payMemberProjectSubitem);
//实收金额 //实收金额
payMemberProjectSubitem.setPaidAmount(new BigDecimal("0.00")); payMemberProjectSubitem.setPaidAmount(new BigDecimal("0.00"));
//到账 //到账
@@ -160,8 +164,16 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
String id = payMemberProjectSubitem.getId(); String id = payMemberProjectSubitem.getId();
PayMemberProjectSubitem payMemberProjectSubitem1 = getById(id); PayMemberProjectSubitem payMemberProjectSubitem1 = getById(id);
if (payMemberProjectSubitem1 == null){ if (payMemberProjectSubitem1 == null){
throw new JeroBootException("项目成员不存在");
}
PayMemberProject memberProject = memberProjectService.getById(payMemberProjectSubitem1.getProjectId());
if (memberProject == null){
throw new JeroBootException("会员项目不存在"); throw new JeroBootException("会员项目不存在");
} }
String year = memberProject.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
// 项目为打包状态 || 到账!=0 || 开票!=0 || 邮寄!=0 // 项目为打包状态 || 到账!=0 || 开票!=0 || 邮寄!=0
if(!Objects.equals(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem1.getCompanyId()) if(!Objects.equals(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem1.getCompanyId())
&& (Objects.equals(payMemberProjectSubitem.getPack(),PayProjectCommon.PACKAGING1) && (Objects.equals(payMemberProjectSubitem.getPack(),PayProjectCommon.PACKAGING1)
@@ -203,21 +215,6 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
payMemberProjectSubitem.setMakeInvoice(payMemberProjectSubitem1.getMakeInvoice()); payMemberProjectSubitem.setMakeInvoice(payMemberProjectSubitem1.getMakeInvoice());
payMemberProjectSubitem.setMail(payMemberProjectSubitem1.getMail()); payMemberProjectSubitem.setMail(payMemberProjectSubitem1.getMail());
//如果原始企业id和现在企业id不同,就删除临时表数据
// String companyId = payMemberProjectSubitem.getCompanyTemporaryId();
// if (!payMemberProjectSubitem1.getCompanyTemporaryId().equals(companyId)) {
// companyManagementTemporaryService.removeById(companyId);
// }
// //如果原始企业联系人id和现在企业联系人id不同,就删除临时表数据
// String companyContactId = payMemberProjectSubitem.getCompanyContactTemporaryId();
// if (!payMemberProjectSubitem1.getCompanyContactTemporaryId().equals(companyContactId)) {
// contactsManagementTemporaryService.removeById(companyContactId);
// }
// //如果原始邮寄联系人id和现在邮寄联系人id不同,就删除临时表数据
// String postContactId = payMemberProjectSubitem.getPostContactTemporaryId();
// if (!payMemberProjectSubitem1.getPostContactTemporaryId().equals(postContactId)) {
// contactsManagementTemporaryService.removeById(postContactId);
// }
// 变更待确收金额,重新校验状态 // 变更待确收金额,重新校验状态
ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payMemberProjectSubitem.getId(),payMemberProjectSubitem.getAmountReceivable(),payMemberProjectSubitem.getNeedInvoice()); ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payMemberProjectSubitem.getId(),payMemberProjectSubitem.getAmountReceivable(),payMemberProjectSubitem.getNeedInvoice());
if(!Objects.isNull(projectStatusVO)){ if(!Objects.isNull(projectStatusVO)){
@@ -246,7 +243,7 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY3)){ if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY3)){
payMemberProjectSubitem.setContractNo(null); payMemberProjectSubitem.setContractNo(null);
} }
validMemberProjectSubitemEdit(payMemberProjectSubitem,payMemberProjectSubitem1); validMemberProjectSubitemEdit(payMemberProjectSubitem,payMemberProjectSubitem1,annualDataLocking);
saveOrUpdate(payMemberProjectSubitem); saveOrUpdate(payMemberProjectSubitem);
// 如果有邮寄信息更新邮寄联系人信息 // 如果有邮寄信息更新邮寄联系人信息
String mailContactsId = payMemberProjectSubitem.getPostContactId(); String mailContactsId = payMemberProjectSubitem.getPostContactId();
@@ -255,13 +252,15 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
/** /**
* 校验会员项目成员 * 校验会员项目成员
*
* @param payMemberProjectSubitem 会员项目成员 * @param payMemberProjectSubitem 会员项目成员
* @param annualDataLocking
*/ */
public void validMemberProjectSubitemAdd(PayMemberProjectSubitem payMemberProjectSubitem) { public void validMemberProjectSubitemAdd(PayMemberProjectSubitem payMemberProjectSubitem, AnnualDataLocking annualDataLocking) {
List<String> errors = new ArrayList<>(); List<String> errors = new ArrayList<>();
// 企业 // 企业
try { try {
PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId()); PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId(), annualDataLocking);
if (Objects.isNull(chargeCompanyName)) { if (Objects.isNull(chargeCompanyName)) {
throw new JeroBootException("企业名称为空!"); throw new JeroBootException("企业名称为空!");
} }
@@ -272,7 +271,7 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
} }
// 联系人 // 联系人
try { try {
PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId()); PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId(), annualDataLocking);
if (Objects.isNull(contactsName)) { if (Objects.isNull(contactsName)) {
throw new JeroBootException("联系人名称为空!"); throw new JeroBootException("联系人名称为空!");
} }
@@ -283,7 +282,7 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
} }
try { try {
// 联系人 // 联系人
PayContactsManagementTemporary postContactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId()); PayContactsManagementTemporary postContactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId(), annualDataLocking);
if (Objects.isNull(postContactsName)) { if (Objects.isNull(postContactsName)) {
throw new JeroBootException("邮寄联系人为空!"); throw new JeroBootException("邮寄联系人为空!");
} }
@@ -310,41 +309,43 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
/** /**
* 校验会员项目成员 * 校验会员项目成员
*
* @param payMemberProjectSubitem 会员项目成员 * @param payMemberProjectSubitem 会员项目成员
* @param annualDataLocking
*/ */
public void validMemberProjectSubitemEdit(PayMemberProjectSubitem payMemberProjectSubitem,PayMemberProjectSubitem payMemberProjectSubitemOld) { public void validMemberProjectSubitemEdit(PayMemberProjectSubitem payMemberProjectSubitem, PayMemberProjectSubitem payMemberProjectSubitemOld, AnnualDataLocking annualDataLocking) {
// 企业id != 企业模板id 变更 // 企业id != 企业模板id 变更
if(!Objects.equals(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitemOld.getCompanyId())){ if(!Objects.equals(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitemOld.getCompanyId())){
// 企业 // 企业
PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId()); PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId(), annualDataLocking);
if(Objects.isNull(chargeCompanyName)){ if(Objects.isNull(chargeCompanyName)){
throw new JeroBootException("企业名称为空!"); throw new JeroBootException("企业名称为空!");
} }
payMemberProjectSubitem.setCompanyTemporaryId(chargeCompanyName.getId()); payMemberProjectSubitem.setCompanyTemporaryId(chargeCompanyName.getId());
payMemberProjectSubitem.setCompanyName(chargeCompanyName.getCompanyName()); payMemberProjectSubitem.setCompanyName(chargeCompanyName.getCompanyName());
companyManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyTemporaryId()); //companyManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyTemporaryId());
} }
// 联系人id != 联系人模板id 变更 // 联系人id != 联系人模板id 变更
// 联系人 // 联系人
PayContactsManagementTemporary companyContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId()); PayContactsManagementTemporary companyContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId(), annualDataLocking);
if(Objects.isNull(companyContact)){ if(Objects.isNull(companyContact)){
throw new JeroBootException("联系人名称为空!"); throw new JeroBootException("联系人名称为空!");
} }
payMemberProjectSubitem.setCompanyContactTemporaryId(companyContact.getId()); payMemberProjectSubitem.setCompanyContactTemporaryId(companyContact.getId());
payMemberProjectSubitem.setCompanyContactName(companyContact.getName()); payMemberProjectSubitem.setCompanyContactName(companyContact.getName());
contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyContactTemporaryId()); // contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyContactTemporaryId());
// 邮寄联系人id != 邮寄联系人模板id 变更 // 邮寄联系人id != 邮寄联系人模板id 变更
if(!Objects.equals(payMemberProjectSubitem.getPostContactId(),payMemberProjectSubitemOld.getPostContactId())){ if(!Objects.equals(payMemberProjectSubitem.getPostContactId(),payMemberProjectSubitemOld.getPostContactId())){
// 联系人 // 联系人
PayContactsManagementTemporary postContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId()); PayContactsManagementTemporary postContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId(), annualDataLocking);
if(Objects.isNull(postContact)){ if(Objects.isNull(postContact)){
throw new JeroBootException("邮寄联系人为空!"); throw new JeroBootException("邮寄联系人为空!");
} }
payMemberProjectSubitem.setPostContactTemporaryId(postContact.getId()); payMemberProjectSubitem.setPostContactTemporaryId(postContact.getId());
payMemberProjectSubitem.setPostContactName(postContact.getName()); payMemberProjectSubitem.setPostContactName(postContact.getName());
contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getPostContactTemporaryId()); // contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getPostContactTemporaryId());
} }
//校验来款方式 //校验来款方式
@@ -359,53 +360,6 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
} }
} }
/**
* 校验会员项目成员
* @param payMemberProjectSubitem 会员项目成员
*/
public void validMemberProjectSubitem(PayMemberProjectSubitem payMemberProjectSubitem) {
//校验企业
String companyId = payMemberProjectSubitem.getCompanyId();
PayCompanyManagementTemporary companyManagementTemporary = companyManagementTemporaryService.insertCompanyManagementTemporary(companyId);
payMemberProjectSubitem.setCompanyTemporaryId(companyManagementTemporary.getId());
payMemberProjectSubitem.setCompanyName(companyManagementTemporary.getCompanyName());
//校验企业联系人
String companyContactId = payMemberProjectSubitem.getCompanyContactId();
PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId);
//校验是否是选择的企业的联系人
String companyId1 = contactsManagement.getCompanyId();
if (companyId1.equals(companyId)){
PayContactsManagementTemporary contactsManagementTemporary = contactsManagementTemporaryService.insertContactsManagementTemporary(companyContactId);
payMemberProjectSubitem.setCompanyContactTemporaryId(contactsManagementTemporary.getId());
payMemberProjectSubitem.setCompanyContactName(contactsManagementTemporary.getName());
}else {
throw new JeroBootException("企业联系人不是所选企业的企业联系人");
}
//校验邮寄联系人
String postContactId = payMemberProjectSubitem.getPostContactId();
PayContactsManagement postContact = contactsManagementService.getById(postContactId);
//校验是否是选择的企业的联系人
String companyId2 = postContact.getCompanyId();
if (companyId2.equals(companyId)){
PayContactsManagementTemporary contactsManagementTemporary1 = contactsManagementTemporaryService.insertContactsManagementTemporary(postContactId);
payMemberProjectSubitem.setPostContactTemporaryId(contactsManagementTemporary1.getId());
payMemberProjectSubitem.setPostContactName(contactsManagementTemporary1.getName());
}else {
throw new JeroBootException("邮寄联系人不是所选企业的企业联系人");
}
//校验来款方式
Integer paymentMethod = payMemberProjectSubitem.getPaymentMethod();
//合同
if (Objects.equals(paymentMethod,2)){
ValidUtil.validate(payMemberProjectSubitem, Contract.class);
}
//收费通知
if (Objects.equals(paymentMethod,3)){
ValidUtil.validate(payMemberProjectSubitem, ChargeNotice.class);
}
}
/** /**
* 通过id删除 * 通过id删除
*/ */
@@ -420,13 +374,13 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
PayMemberProjectSubitem payMemberProjectSubitem = getById(id); PayMemberProjectSubitem payMemberProjectSubitem = getById(id);
//删除临时表数据 //删除临时表数据
String companyId = payMemberProjectSubitem.getCompanyTemporaryId(); String companyId = payMemberProjectSubitem.getCompanyTemporaryId();
companyManagementTemporaryService.removeById(companyId); //companyManagementTemporaryService.removeById(companyId);
String companyContactId = payMemberProjectSubitem.getCompanyContactTemporaryId(); String companyContactId = payMemberProjectSubitem.getCompanyContactTemporaryId();
contactsManagementTemporaryService.removeById(companyContactId); // contactsManagementTemporaryService.removeById(companyContactId);
String postContactId = payMemberProjectSubitem.getPostContactTemporaryId(); String postContactId = payMemberProjectSubitem.getPostContactTemporaryId();
contactsManagementTemporaryService.removeById(postContactId); // contactsManagementTemporaryService.removeById(postContactId);
} }
/** /**
@@ -452,6 +406,12 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
* @Exception * @Exception
*/ */
private void deleteProject(String id){ private void deleteProject(String id){
PayMemberProjectSubitem projectSubitem = this.getById(id);
PayMemberProject memberProject = memberProjectService.getById(projectSubitem.getProjectId());
String year = memberProject.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
PayMemberProjectSubitem payMemberProjectSubitem = memberProjectSubitemService.getById(id); PayMemberProjectSubitem payMemberProjectSubitem = memberProjectSubitemService.getById(id);
// 到账!=0 || 开票!=0 || 邮寄!=0 // 到账!=0 || 开票!=0 || 邮寄!=0
if(!Objects.equals(payMemberProjectSubitem.getInAccount(), PayProjectCommon.IN_ACCOUNT0) if(!Objects.equals(payMemberProjectSubitem.getInAccount(), PayProjectCommon.IN_ACCOUNT0)
@@ -464,10 +424,10 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
// 如果已打报,同步删除打包关联 // 如果已打报,同步删除打包关联
LambdaUpdateWrapper<PayPackCompanyProject> update = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PayPackCompanyProject> update = new LambdaUpdateWrapper<>();
update.eq(PayPackCompanyProject::getProjectId,payMemberProjectSubitem.getId()); update.eq(PayPackCompanyProject::getProjectId,payMemberProjectSubitem.getId());
payPackCompanyProjectService.remove(update); //payPackCompanyProjectService.remove(update);
// 删除企业联系人临时数据 // 删除企业联系人临时数据
companyManagementTemporaryService.removeById(payMemberProjectSubitem.getCompanyTemporaryId()); //companyManagementTemporaryService.removeById(payMemberProjectSubitem.getCompanyTemporaryId());
contactsManagementTemporaryService.removeByIds(Arrays.asList(payMemberProjectSubitem.getCompanyContactTemporaryId(),payMemberProjectSubitem.getPostContactTemporaryId())); // contactsManagementTemporaryService.removeByIds(Arrays.asList(payMemberProjectSubitem.getCompanyContactTemporaryId(),payMemberProjectSubitem.getPostContactTemporaryId()));
} }
/** /**
@@ -18,6 +18,8 @@ import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.TbMemberProjectMapper; import com.jero.member.mapper.TbMemberProjectMapper;
import com.jero.member.service.ITbMemberProjectService; import com.jero.member.service.ITbMemberProjectService;
import com.jero.member.service.ITbMemberProjectSubitemService; 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.commons.collections.CollectionUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -53,12 +55,16 @@ public class ITbMemberProjectService extends ServiceImpl<TbMemberProjectMapper,
private RolePermissionService rolePermissionService; private RolePermissionService rolePermissionService;
@Resource @Resource
private IPayMeetingService meetingService; private IPayMeetingService meetingService;
@Resource
private AnnualDataLockingService annualDataLockingService;
/** /**
* 保存 * 保存
*/ */
public void add(TbMemberProject tbMemberProject) { public void add(TbMemberProject tbMemberProject) {
//一年只能有一个项目 //一年只能有一个项目
String year = tbMemberProject.getYear(); String year = tbMemberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
check(year, null); check(year, null);
save(tbMemberProject); save(tbMemberProject);
} }
@@ -80,10 +86,19 @@ public class ITbMemberProjectService extends ServiceImpl<TbMemberProjectMapper,
* 更新 * 更新
*/ */
public void editById(TbMemberProject tbMemberProject) { public void editById(TbMemberProject tbMemberProject) {
//一年只能有一个项目
String year = tbMemberProject.getYear(); String year = tbMemberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
String id = tbMemberProject.getId(); String id = tbMemberProject.getId();
//一年只能有一个项目
check(year, id); check(year, id);
TbMemberProject memberProjectOld = this.getById(id);
String oldYear = memberProjectOld.getYear();
//判断用户是否能操作所选年份数据
annualDataLockingService.judgeUserYear(oldYear);
saveOrUpdate(tbMemberProject); saveOrUpdate(tbMemberProject);
} }
@@ -91,6 +106,11 @@ public class ITbMemberProjectService extends ServiceImpl<TbMemberProjectMapper,
* 通过id删除 * 通过id删除
*/ */
public void deleteById(String id) { public void deleteById(String id) {
TbMemberProject memberProjectOld = this.getById(id);
String oldYear = memberProjectOld.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.eq(TbMemberProjectSubitem::getProjectId, id); query.eq(TbMemberProjectSubitem::getProjectId, id);
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query); List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
@@ -111,6 +131,12 @@ public class ITbMemberProjectService extends ServiceImpl<TbMemberProjectMapper,
* 批量删除 * 批量删除
*/ */
public void deleteByIds(List<String> ids) { public void deleteByIds(List<String> ids) {
List<TbMemberProject> tbMemberProjects = this.listByIds(ids);
for (TbMemberProject memberProjectOld : tbMemberProjects) {
String oldYear = memberProjectOld.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
}
LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.in(TbMemberProjectSubitem::getProjectId, ids); query.in(TbMemberProjectSubitem::getProjectId, ids);
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query); List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
@@ -1,6 +1,4 @@
package com.jero.member.service; package com.jero.member.service;
import java.math.RoundingMode;
import java.util.*;
import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DatePattern; 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.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.common.ProjectCommon;
import com.jero.common.enums.PaymentStatusEnum; import com.jero.common.enums.PaymentStatusEnum;
import com.jero.common.exception.JeroBootException; 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.entity.TbMemberProjectSubitem;
import com.jero.member.enums.MemberStatusEnum; import com.jero.member.enums.MemberStatusEnum;
import com.jero.member.mapper.TbMemberProjectSubitemMapper; 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.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.payment.entity.PayConfirmPaymentRecord; 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.IPayPaymentRecordService;
import com.jero.payment.service.impl.PayConfirmPaymentRecordService; import com.jero.payment.service.impl.PayConfirmPaymentRecordService;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayWorkingGroupSubItem; import com.jero.project.service.AnnualDataLockingService;
import com.jero.statistics.entity.MemberLineChartMap; import com.jero.statistics.entity.MemberLineChartMap;
import com.jero.statistics.entity.MemberLineChartVO; import com.jero.statistics.entity.MemberLineChartVO;
import com.jero.statistics.entity.MemberPieChartVO; 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.ChargeNotice;
import com.jero.valid.group.Contract; import com.jero.valid.group.Contract;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
@@ -58,17 +64,17 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; 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 org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import static freemarker.template.utility.NullArgumentException.check; 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: 标协会员项目成员表 * @Description: 标协会员项目成员表
@@ -110,31 +116,26 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
private ISysBaseAPI sysBaseAPI; private ISysBaseAPI sysBaseAPI;
@Resource @Resource
private PayMeetingSituationMapper payMeetingSituationMapper; private PayMeetingSituationMapper payMeetingSituationMapper;
@Resource
private AnnualDataLockingService annualDataLockingService;
@Resource
private IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService;
@Resource
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
/** /**
* 保存 * 保存
*/ */
public void add(TbMemberProjectSubitem tbMemberProjectSubitem) { public void add(TbMemberProjectSubitem tbMemberProjectSubitem) {
setDefaultCreateValue(tbMemberProjectSubitem);
String companyId = tbMemberProjectSubitem.getCompanyId();
PayCompanyManagement companyManagement = companyManagementService.getById(companyId);
if (companyManagement == null){
throw new JeroBootException("单位不存在");
}
String liaisonManId = tbMemberProjectSubitem.getLiaisonManId();
PayContactsManagement liaisonMan = payContactsManagementService.checkByCompanyIdAndId(liaisonManId, companyId);
if (liaisonMan == null){
throw new JeroBootException("企业联系人不存在");
}
String postContactId = tbMemberProjectSubitem.getPostContactId();
PayContactsManagement postContact = payContactsManagementService.checkByCompanyIdAndId(postContactId, companyId);
if (postContact == null){
throw new JeroBootException("邮寄联系人不存在");
}
String projectId = tbMemberProjectSubitem.getProjectId(); String projectId = tbMemberProjectSubitem.getProjectId();
TbMemberProject memberProject = tbMemberProjectService.getById(projectId);
String oldYear = memberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
setDefaultCreateValue(tbMemberProjectSubitem);
setSubitemAdd(tbMemberProjectSubitem,annualDataLocking);
String companyId = tbMemberProjectSubitem.getCompanyId();
String liaisonManId = tbMemberProjectSubitem.getLiaisonManId();
LambdaQueryWrapper<TbMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TbMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TbMemberProjectSubitem::getProjectId, projectId); wrapper.eq(TbMemberProjectSubitem::getProjectId, projectId);
wrapper.eq(TbMemberProjectSubitem::getCompanyId, companyId); wrapper.eq(TbMemberProjectSubitem::getCompanyId, companyId);
@@ -181,13 +182,13 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
// 来款方式为合同,校验合同编号 // 来款方式为合同,校验合同编号
if (Objects.equals(tbMemberProjectSubitem.getPaymentMethod(), PayProjectCommon.CHARGE_WAY2)) { if (Objects.equals(tbMemberProjectSubitem.getPaymentMethod(), PayProjectCommon.CHARGE_WAY2)) {
PayIncomeContract payIncomeContract = payIncomeContractService.setPayIncomeContractAssociated(tbMemberProjectSubitem.getContractNum(), tbMemberProjectSubitem.getCompanyId(), tbMemberProjectSubitem.getId()); PayIncomeContract payIncomeContract = payIncomeContractService.setPayIncomeContractAssociated(tbMemberProjectSubitem.getContractNum(), companyId, tbMemberProjectSubitem.getId());
if (!Objects.isNull(payIncomeContract)) { if (!Objects.isNull(payIncomeContract)) {
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同 // 合同存在 && 合同状态不为草稿,不为未通过 关联合同
payIncomeContractService.insertPayIncomeContract(payIncomeContract, tbMemberProjectSubitem.getId(), Integer.parseInt(PayProjectCommon.PROJECT_TYPE5)); payIncomeContractService.insertPayIncomeContract(payIncomeContract, tbMemberProjectSubitem.getId(), Integer.parseInt(PayProjectCommon.PROJECT_TYPE5));
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包 // 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
if (Objects.equals(payIncomeContract.getPack(), PayProjectCommon.PACKAGING1)) { if (Objects.equals(payIncomeContract.getPack(), PayProjectCommon.PACKAGING1)) {
payPackCompanyProjectService.setPack(tbMemberProjectSubitem.getCompanyId(), liaisonManId, payIncomeContract.getPackYear(), tbMemberProjectSubitem.getId(), PayProjectCommon.PROJECT_TYPE5, payIncomeContract.getPack()); payPackCompanyProjectService.setPack(companyId, liaisonManId, payIncomeContract.getPackYear(), tbMemberProjectSubitem.getId(), PayProjectCommon.PROJECT_TYPE5, payIncomeContract.getPack());
LambdaUpdateWrapper<TbMemberProjectSubitem> update = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<TbMemberProjectSubitem> update = new LambdaUpdateWrapper<>();
update.eq(TbMemberProjectSubitem::getId, tbMemberProjectSubitem.getId()); update.eq(TbMemberProjectSubitem::getId, tbMemberProjectSubitem.getId());
update.set(TbMemberProjectSubitem::getPack, PayProjectCommon.PACKAGING1); update.set(TbMemberProjectSubitem::getPack, PayProjectCommon.PACKAGING1);
@@ -196,7 +197,13 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
} }
} }
} }
public void addExcel(String projectId, List<Object> excelData) { public void addExcel(String projectId, List<Object> excelData) {
TbMemberProject memberProject = tbMemberProjectService.getById(projectId);
String oldYear = memberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
int errorRowNum = 2; int errorRowNum = 2;
List<TbMemberProjectSubitem> insertList = new ArrayList<>(); List<TbMemberProjectSubitem> insertList = new ArrayList<>();
List<String> errorMessage = new ArrayList<>(); List<String> errorMessage = new ArrayList<>();
@@ -252,6 +259,7 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
}else { }else {
subitem.setPostContactId(postContact.getId()); subitem.setPostContactId(postContact.getId());
} }
setSubitemAdd(subitem,annualDataLocking);
} }
} }
@@ -274,8 +282,26 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
// 预估到账日期 // 预估到账日期
if (ValidUtil.checkErrorList(errorList, "预估到账日期")) { if (ValidUtil.checkErrorList(errorList, "预估到账日期")) {
String estimatedArrivalDate = subitemExcel.getEstimatedArrivalDate(); String estimatedArrivalDateStr = subitemExcel.getEstimatedArrivalDate();
subitem.setEstimatedArrivalDate(DateUtil.parseDate(estimatedArrivalDate)); if (StringUtils.isNotBlank(estimatedArrivalDateStr)) {
try {
DateTimeFormatter formatter;
LocalDate parsedDate;
if (estimatedArrivalDateStr.matches("\\d{4}-\\d{1,2}")) {
// 处理 yyyy-MM 格式
estimatedArrivalDateStr = estimatedArrivalDateStr + "-01";
formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
} else {
throw new DateTimeParseException("日期格式错误", estimatedArrivalDateStr, 0);
}
parsedDate = LocalDate.parse(estimatedArrivalDateStr, formatter);
subitem.setEstimatedArrivalDate(java.sql.Date.valueOf(parsedDate)); // 设置正确格式的日期到对象中
} catch (Exception e) {
errorMessage.add("第" + errorRowNum + "行:" + "预估到账日期格式错误");
}
} else {
errorMessage.add("第" + errorRowNum + "行:" + "预估到账日期不能为空");
}
} }
String paymentMethod = subitemExcel.getPaymentMethod(); String paymentMethod = subitemExcel.getPaymentMethod();
@@ -402,11 +428,17 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
public void editById(TbMemberProjectSubitem tbMemberProjectSubitem) { public void editById(TbMemberProjectSubitem tbMemberProjectSubitem) {
String subitemId = tbMemberProjectSubitem.getId(); String subitemId = tbMemberProjectSubitem.getId();
TbMemberProjectSubitem subitemOld = getById(subitemId); TbMemberProjectSubitem subitemOld = getById(subitemId);
TbMemberProject memberProject = tbMemberProjectService.getById(subitemOld.getProjectId());
String oldYear = memberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
String companyId = tbMemberProjectSubitem.getCompanyId(); String companyId = tbMemberProjectSubitem.getCompanyId();
String companyIdOld = subitemOld.getCompanyId(); String companyIdOld = subitemOld.getCompanyId();
if (!Objects.equals(companyId,companyIdOld)){ if (!Objects.equals(companyId,companyIdOld)){
throw new JeroBootException("会员单位不可变更"); throw new JeroBootException("会员单位不可变更");
} }
setSubitemEdit(tbMemberProjectSubitem,subitemOld,annualDataLocking);
// 校验项目是否已关联合同 // 校验项目是否已关联合同
PayIncomeContract payIncomeContract = payIncomeContractService.checkPayIncomeContractAssociated(subitemId); PayIncomeContract payIncomeContract = payIncomeContractService.checkPayIncomeContractAssociated(subitemId);
if (!Objects.isNull(payIncomeContract)) { if (!Objects.isNull(payIncomeContract)) {
@@ -441,6 +473,58 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
updateById(tbMemberProjectSubitem); updateById(tbMemberProjectSubitem);
} }
private void setSubitemAdd(TbMemberProjectSubitem tbMemberProjectSubitem, AnnualDataLocking annualDataLocking) {
String companyId = tbMemberProjectSubitem.getCompanyId();
PayCompanyManagementTemporary companyManagement = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(companyId, annualDataLocking);
if (companyManagement == null){
throw new JeroBootException("单位不存在");
}
tbMemberProjectSubitem.setCompanyTemporaryId(companyManagement.getId());
tbMemberProjectSubitem.setCompanyName(companyManagement.getCompanyName());
String liaisonManId = tbMemberProjectSubitem.getLiaisonManId();
PayContactsManagementTemporary liaisonMan = payContactsManagementTemporaryService.insertContactsManagementTemporary(liaisonManId, annualDataLocking);
if (liaisonMan == null){
throw new JeroBootException("企业联系人不存在");
}
tbMemberProjectSubitem.setCompanyContactTemporaryId(liaisonMan.getId());
tbMemberProjectSubitem.setLiaisonMan(liaisonMan.getName());
String postContactId = tbMemberProjectSubitem.getPostContactId();
PayContactsManagementTemporary postContact = payContactsManagementTemporaryService.insertContactsManagementTemporary(postContactId, annualDataLocking);
if (postContact == null){
throw new JeroBootException("邮寄联系人不存在");
}
tbMemberProjectSubitem.setPostContactTemporaryId(postContact.getId());
}
private void setSubitemEdit(TbMemberProjectSubitem subitem, TbMemberProjectSubitem subitemOld, AnnualDataLocking annualDataLocking) {
String companyId = subitem.getCompanyId();
PayCompanyManagementTemporary companyManagement = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(companyId, annualDataLocking);
if (companyManagement == null){
throw new JeroBootException("单位不存在");
}
subitem.setCompanyTemporaryId(companyManagement.getId());
subitem.setCompanyName(companyManagement.getCompanyName());
// 联系人id != 联系人模板id 变更
String liaisonManId = subitem.getLiaisonManId();
// 联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(liaisonManId, annualDataLocking);
if (Objects.isNull(contactsName)) {
throw new JeroBootException("联系人名称为空!");
}
subitem.setCompanyContactTemporaryId(contactsName.getId());
subitem.setLiaisonMan(contactsName.getName());
// 邮寄联系人id != 邮寄联系人模板id 变更
String postContactId = subitem.getPostContactId();
// 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(postContactId, annualDataLocking);
if (Objects.isNull(mailContactsName)) {
throw new JeroBootException("邮寄联系人名称为空!");
}
subitem.setPostContactTemporaryId(mailContactsName.getId());
}
/** /**
* 通过id删除 * 通过id删除
*/ */
@@ -469,6 +553,11 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
* @Exception * @Exception
*/ */
public void deleteProject(String id){ public void deleteProject(String id){
TbMemberProjectSubitem subitemOld = getById(id);
TbMemberProject memberProject = tbMemberProjectService.getById(subitemOld.getProjectId());
String oldYear = memberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
//删除到账 //删除到账
LambdaQueryWrapper<PayPaymentRecord> wrapper1 = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayPaymentRecord> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(PayPaymentRecord::getProjectId,id); wrapper1.eq(PayPaymentRecord::getProjectId,id);
@@ -524,9 +613,18 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
} }
private QueryWrapper<TbMemberProjectSubitem> generateQueryWrapper(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem){ private QueryWrapper<TbMemberProjectSubitem> generateQueryWrapper(HttpServletRequest request, TbMemberProjectSubitem tbMemberProjectSubitem){
QueryWrapper<TbMemberProjectSubitem> queryWrapper = QueryGenerator.initQueryWrapper(tbMemberProjectSubitem, request.getParameterMap()); Map<String, String[]> parameterMap = request.getParameterMap();
String[] strings = parameterMap.get("companyName");
parameterMap.remove("companyName");
tbMemberProjectSubitem.setCompanyName(null);
QueryWrapper<TbMemberProjectSubitem> queryWrapper = QueryGenerator.initQueryWrapper(tbMemberProjectSubitem, parameterMap);
String invalidationDateStr = tbMemberProjectSubitem.getInvalidationDateStr(); String invalidationDateStr = tbMemberProjectSubitem.getInvalidationDateStr();
String effectiveDateStr = tbMemberProjectSubitem.getEffectiveDateStr(); 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)){ if (StringUtils.isNotBlank(invalidationDateStr)){
DateTime invalidationDate = DateUtil.parse(invalidationDateStr, DatePattern.NORM_MONTH_PATTERN); DateTime invalidationDate = DateUtil.parse(invalidationDateStr, DatePattern.NORM_MONTH_PATTERN);
queryWrapper.eq("year(invalidation_date)",invalidationDate.year()); queryWrapper.eq("year(invalidation_date)",invalidationDate.year());
@@ -537,6 +635,12 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
queryWrapper.eq("year(effective_date)",effectiveDate.year()); queryWrapper.eq("year(effective_date)",effectiveDate.year());
queryWrapper.eq("month(effective_date)",effectiveDate.month()+1); queryWrapper.eq("month(effective_date)",effectiveDate.month()+1);
} }
if (StringUtils.isNotBlank(estimatedArrivalDateBegin)){
queryWrapper.ge("estimated_arrival_date",estimatedArrivalDateBegin);
}
if (StringUtils.isNotBlank(estimatedArrivalDateEnd)){
queryWrapper.le("estimated_arrival_date",estimatedArrivalDateEnd);
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("safeguardStardsMember:search")) { if (!rolePermissionService.getRolePermission("safeguardStardsMember:search")) {
queryWrapper.eq("tmp.director_id",sysUser.getId()); queryWrapper.eq("tmp.director_id",sysUser.getId());
@@ -666,6 +770,9 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
String projectId = copyMemberVO.getProjectId(); String projectId = copyMemberVO.getProjectId();
String id = copyMemberVO.getId(); String id = copyMemberVO.getId();
TbMemberProject memberProject = tbMemberProjectService.getById(projectId); TbMemberProject memberProject = tbMemberProjectService.getById(projectId);
String oldYear = memberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
copyOperation(memberProject, id); copyOperation(memberProject, id);
} }
@@ -696,6 +803,9 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
String projectId = copyMemberVO.getProjectId(); String projectId = copyMemberVO.getProjectId();
String ids = copyMemberVO.getIds(); String ids = copyMemberVO.getIds();
TbMemberProject memberProject = tbMemberProjectService.getById(projectId); TbMemberProject memberProject = tbMemberProjectService.getById(projectId);
String oldYear = memberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
for (String id : ids.split(",")) { for (String id : ids.split(",")) {
copyOperation(memberProject, id); copyOperation(memberProject, id);
} }
@@ -0,0 +1,50 @@
package com.jero.member.vo;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
@Data
public class AnnualMemberProjectExcelVO {
/**id*/
@ApiModelProperty(value = "id")
private String id;
/**会员单位*/
@ApiModelProperty(value = "会员单位")
@Excel(name = "会员单位", width = 20)
private String companyName;
/**会员编号*/
@Excel(name = "会员编号", width = 20)
@ApiModelProperty(value = "会员编号")
private String memberNo;
/**会员联系人*/
@ApiModelProperty(value = "企业联系人")
@Excel(name = "企业联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id")
@Dict(dictTable = "pay_contacts_management", dicText = "name", dicCode = "id")
private String liaisonManId;
/**会员状态*/
@Excel(name = "会员状态", width = 15, dicCode = "member_status")
@ApiModelProperty(value = "会员状态")
@Dict(dicCode = "member_status")
private Integer memberStatus;
/** 生效日期 */
@ApiModelProperty(value = "生效日期")
@Excel(name = "生效日期", width = 20)
private String effectiveDateStr;
/**
* 失效日期
*/
@ApiModelProperty(value = "失效日期")
@Excel(name = "失效日期", width = 20)
private String invalidationDateStr;
}
@@ -92,8 +92,8 @@ public class TbMemberProjectSubitemEditVO implements Serializable {
private BigDecimal noTaxAmount; private BigDecimal noTaxAmount;
/**预估到账日期*/ /**预估到账日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM")
@DateTimeFormat(pattern="yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM")
@ApiModelProperty(value = "预估到账日期") @ApiModelProperty(value = "预估到账日期")
@Excel(name = "预估到账日期", width = 15) @Excel(name = "预估到账日期", width = 15)
private Date estimatedArrivalDate; private Date estimatedArrivalDate;
@@ -61,9 +61,9 @@ public class TbMemberProjectSubitemExcelImport {
private String amountReceivable; private String amountReceivable;
/**预估到账日期*/ /**预估到账日期*/
// @NotBlank(message = "预估到账日期不能为空")
// @Pattern(regexp = "^\\d{4}-\\d{1,2}-\\d{1,2}$",message = "预估到账日期格式错误")
@ApiModelProperty(value = "预估到账日期") @ApiModelProperty(value = "预估到账日期")
@NotBlank(message = "预估到账日期不能为空")
@Pattern(regexp = "^\\d{4}-\\d{1,2}-\\d{1,2}$",message = "预估到账日期格式错误")
@Excel(name = "预估到账日期", width = 15) @Excel(name = "预估到账日期", width = 15)
private String estimatedArrivalDate; private String estimatedArrivalDate;
@@ -7,6 +7,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -16,6 +17,7 @@ import com.jero.common.system.base.controller.JeroController;
import com.jero.common.util.PasswordUtil; import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil; import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils; import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.mail.entity.PayMailBillProject; import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService; import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.pack.entity.PayPackCompany; import com.jero.pack.entity.PayPackCompany;
@@ -119,6 +121,12 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
if(Objects.isNull(p.getPackChargeTotal())){ if(Objects.isNull(p.getPackChargeTotal())){
p.setPackChargeTotal(new BigDecimal("0.00")); p.setPackChargeTotal(new BigDecimal("0.00"));
} }
// 处理 预估到账日期 字段 ,变为yyyy-MM格式
if(StringUtils.isNotBlank(p.getEstimatedArrivalDate())){
String estimatedArrivalDate = p.getEstimatedArrivalDate();
String formattedDate = estimatedArrivalDate.substring(0, 7); // 截取字符串的前7个字符 "yyyy-MM"
p.setEstimatedArrivalDate(formattedDate);
}
}); });
pageList.setRecords(list); pageList.setRecords(list);
} }
@@ -144,6 +152,10 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
@ApiOperation(value="打包企业管理-添加", notes="打包企业管理-添加") @ApiOperation(value="打包企业管理-添加", notes="打包企业管理-添加")
@PostMapping(value = "/add") @PostMapping(value = "/add")
public Result<?> add(@RequestBody PayPackCompany payPackCompany) { public Result<?> add(@RequestBody PayPackCompany payPackCompany) {
if (!StringUtils.isBlank(payPackCompany.getEstimatedArrivalDate())) {
payPackCompany.setEstimatedArrivalDate(payPackCompany.getEstimatedArrivalDate() + "-01");
}
StringBuilder msg = ValidUtil.validateAll(payPackCompany); StringBuilder msg = ValidUtil.validateAll(payPackCompany);
if(!StringUtils.isBlank(msg)){ if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString()); return Result.error(msg.toString());
@@ -163,6 +175,9 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
@ApiOperation(value="打包企业管理-编辑", notes="打包企业管理-编辑") @ApiOperation(value="打包企业管理-编辑", notes="打包企业管理-编辑")
@PostMapping(value = "/edit") @PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayPackCompany payPackCompany) { public Result<?> edit(@RequestBody PayPackCompany payPackCompany) {
if (!StringUtils.isBlank(payPackCompany.getEstimatedArrivalDate())) {
payPackCompany.setEstimatedArrivalDate(payPackCompany.getEstimatedArrivalDate() + "-01");
}
StringBuilder msg = ValidUtil.validateAll(payPackCompany); StringBuilder msg = ValidUtil.validateAll(payPackCompany);
if(!StringUtils.isBlank(msg)){ if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString()); return Result.error(msg.toString());
@@ -292,7 +307,15 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
return Result.OK(payPackCompany); return Result.OK(payPackCompany);
} }
@ApiOperation(value="判断当前企业是否是打包企业")
@GetMapping(value = "/judgeCompanyIsPackaged")
public Result<Boolean> judgeCompanyIsPackaged(@RequestParam(name="companyId") String companyId){
LambdaQueryWrapper<PayPackCompany> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayPackCompany::getCompanyId,companyId);
wrapper.eq(PayPackCompany::getPackYear, DateUtil.thisYear());
List<PayPackCompany> list = payPackCompanyService.list(wrapper);
return Result.OK(!list.isEmpty()) ;
}
/** /**
* 导出excel * 导出excel
@@ -351,6 +374,11 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
if (Objects.isNull(p.getPackChargeTotal())) { if (Objects.isNull(p.getPackChargeTotal())) {
p.setPackChargeTotal(new BigDecimal("0.00")); p.setPackChargeTotal(new BigDecimal("0.00"));
} }
if(StringUtils.isNotBlank(p.getEstimatedArrivalDate())){
String estimatedArrivalDate = p.getEstimatedArrivalDate();
String formattedDate = estimatedArrivalDate.substring(0, 7);
p.setEstimatedArrivalDate(formattedDate);
}
}); });
} }
@@ -63,28 +63,6 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
private ISysBaseAPI sysBaseAPI; private ISysBaseAPI sysBaseAPI;
@Resource @Resource
private Environment env; private Environment env;
/**
* 分页列表查询
*
* @param payPackCompanyProject
* @param pageNo
* @param pageSize
* @param req
* @return
*/
// @ApiOperation(value="打包项目维护-分页列表查询", notes="打包项目维护-分页列表查询")
// @GetMapping(value = "/list")
public Result<?> queryPageList(PayPackCompanyProject payPackCompanyProject,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<PayPackCompanyProject> queryWrapper = QueryGenerator.initQueryWrapper(payPackCompanyProject, req.getParameterMap());
Page<PayPackCompanyProject> page = new Page<PayPackCompanyProject>(pageNo, pageSize);
IPage<PayPackCompanyProject> pageList = payPackCompanyProjectService.page(page, queryWrapper);
return Result.OK(pageList);
}
/** /**
* 列表查询 * 列表查询
* *
@@ -223,61 +201,6 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
return Result.OK("批量取消打包成功!"); return Result.OK("批量取消打包成功!");
} }
/**
* 编辑
*
* @param payPackCompanyProject
* @return
*/
// @ApiOperation(value="pay_pack_company_project-编辑", notes="pay_pack_company_project-编辑")
// @PostMapping(value = "/edit")
public Result<?> 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 * 导出excel
* *
@@ -336,18 +259,6 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
return mv; return mv;
} }
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
// @PostMapping(value = "/importExcel")
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, PayPackCompanyProject.class);
}
/** /**
* 处理24年历史数据 * 处理24年历史数据
*/ */
@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.pack.entity.PayPackCompany; import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayCommonProject;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -56,4 +55,8 @@ public interface PayPackCompanyMapper extends BaseMapper<PayPackCompany> {
String getConfirmAmountMoney(@Param("payPackCompany") PayPackCompany payPackCompany); String getConfirmAmountMoney(@Param("payPackCompany") PayPackCompany payPackCompany);
String getComeAllMoney(@Param("payPackCompany") PayPackCompany payPackCompany); String getComeAllMoney(@Param("payPackCompany") PayPackCompany payPackCompany);
List<PayPackCompany> listByYear(@Param("year") String year);
List<PayPackCompany> listByYearNotIn(@Param("yearList") List<String> yearList, @Param("companyManagementId") String companyManagementId);
} }
@@ -29,7 +29,6 @@
</select> </select>
<select id="queryPageList" resultType="com.jero.pack.entity.PayPackCompany"> <select id="queryPageList" resultType="com.jero.pack.entity.PayPackCompany">
select ppc.*,pcmt.phone,pcmt.email from pay_pack_company ppc select ppc.*,pcmt.phone,pcmt.email from pay_pack_company ppc
LEFT JOIN pay_payment_record ppr ON ppr.project_id = ppc.id
LEFT JOIN pay_company_management pcm on ppc.company_id = pcm.id LEFT JOIN pay_company_management pcm on ppc.company_id = pcm.id
LEFT JOIN pay_contacts_management_temporary pcmt ON pcmt.id = ppc.company_contact_temporary_id LEFT JOIN pay_contacts_management_temporary pcmt ON pcmt.id = ppc.company_contact_temporary_id
<where> <where>
@@ -109,5 +108,18 @@
</where> </where>
</select> </select>
<select id="listByYear" resultType="com.jero.pack.entity.PayPackCompany">
select * from pay_pack_company
where pack_year = #{year}
</select>
<select id="listByYearNotIn" resultType="com.jero.pack.entity.PayPackCompany">
select * from pay_pack_company
where
company_id = #{companyManagementId}
and pack_year not in
<foreach item="item" index="index" collection="yearList" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper> </mapper>
@@ -30,13 +30,14 @@
( project.phone = '' or project.phone IS NULL, pcmt.phone, project.phone ) AS phone, ( project.phone = '' or project.phone IS NULL, pcmt.phone, project.phone ) AS phone,
IF IF
( project.email = '' or project.email IS NULL, pcmt.email, project.email ) AS email, ( project.email = '' or project.email IS NULL, pcmt.email, project.email ) AS email,
affirm_income affirm_income,
project.sort_no
from 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, 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.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 from pay_common_project c
left join sys_user su on c.principal_id = su.id left join sys_user su on c.principal_id = su.id
LEFT JOIN pay_contacts_management pcm ON c.contacts_temporary_id = pcm.id LEFT JOIN pay_contacts_management pcm ON c.contacts_temporary_id = pcm.id
@@ -56,7 +57,7 @@
UNION ALL 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, 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.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 from pay_working_group g
left join sys_user su on g.principal_id_a = su.id 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 inner join pay_working_group_subitem gsub on g.id = gsub.working_group_id
@@ -77,7 +78,7 @@
UNION ALL 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, 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.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 from pay_meeting meeting
left join sys_user su on meeting.director_id = su.id left join sys_user su on meeting.director_id = su.id
inner join pay_meeting_situation sit on meeting.id = sit.meeting_id inner join pay_meeting_situation sit on meeting.id = sit.meeting_id
@@ -98,7 +99,7 @@
UNION ALL 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, 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.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 from pay_member_project pmp
left join sys_user su on pmp.director_id = su.id left join sys_user su on pmp.director_id = su.id
inner join pay_member_project_subitem msub on pmp.id = msub.project_id inner join pay_member_project_subitem msub on pmp.id = msub.project_id
@@ -118,7 +119,7 @@
UNION ALL 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, 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 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 from tb_member_project tmember
left join sys_user su on tmember.director_id = su.id left join sys_user su on tmember.director_id = su.id
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
@@ -138,7 +139,7 @@
UNION ALL 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, 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 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 from tb_member_project tmember
left join sys_user su on tmember.director_id = su.id left join sys_user su on tmember.director_id = su.id
inner join tb_certificate_payment tcp on tmember.id = tcp.project_id inner join tb_certificate_payment tcp on tmember.id = tcp.project_id
@@ -166,7 +167,19 @@
<if test="paymentDate != null and paymentDate != ''"> <if test="paymentDate != null and paymentDate != ''">
AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate} AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate}
</if> </if>
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> </select>
<select id="queryPackListAll" resultType="com.jero.project.entity.PayCommonProject"> <select id="queryPackListAll" resultType="com.jero.project.entity.PayCommonProject">
SELECT * FROM ( SELECT * FROM (
@@ -3,6 +3,7 @@ package com.jero.pack.service.impl;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.dto.SendMessageDTO; import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.ManagementMessageEnums; import com.jero.common.enums.ManagementMessageEnums;
@@ -16,16 +17,22 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil; import com.jero.common.util.PasswordUtil;
import com.jero.config.StaticConfig; import com.jero.config.StaticConfig;
import com.jero.contract.common.PayIncomeContractCommon; import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.meeting.common.MeetingSubitemCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation; import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingSituationMapper; import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.member.entity.PayMemberProject; import com.jero.member.entity.PayMemberProject;
import com.jero.member.entity.PayMemberProjectSubitem; import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbCertificatePayment; import com.jero.member.entity.TbCertificatePayment;
import com.jero.member.entity.TbMemberProjectSubitem; import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.enums.MemberStatusEnum;
import com.jero.member.mapper.PayMemberProjectSubitemMapper; import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.mapper.TbCertificatePaymentMapper; import com.jero.member.mapper.TbCertificatePaymentMapper;
import com.jero.member.mapper.TbMemberProjectSubitemMapper; import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.service.IPayMemberProjectService; import com.jero.member.service.IPayMemberProjectService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.common.PackCommon; import com.jero.pack.common.PackCommon;
@@ -37,12 +44,14 @@ import com.jero.pack.service.IPayPackCompanyService;
import com.jero.pack.vo.PayPackCompanyProjectInput; import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.pack.vo.PayProjectExcel; import com.jero.pack.vo.PayProjectExcel;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItem; import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.mapper.PayCommonProjectMapper; import com.jero.project.mapper.PayCommonProjectMapper;
import com.jero.project.mapper.PayWorkingGroupMapper; import com.jero.project.mapper.PayWorkingGroupMapper;
import com.jero.project.mapper.PayWorkingGroupSubItemMapper; import com.jero.project.mapper.PayWorkingGroupSubItemMapper;
import com.jero.project.service.AnnualDataLockingService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
@@ -101,7 +110,14 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
private ISysBaseAPI sysBaseAPI; private ISysBaseAPI sysBaseAPI;
@Resource @Resource
private IPayMemberProjectService payMemberProjectService; private IPayMemberProjectService payMemberProjectService;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Resource
private IPayMeetingService meetingService;
@Resource
private IPayMeetingSituationService meetingSituationService;
@Resource
private AnnualDataLockingService annualDataLockingService;
@Override @Override
public List<PayCommonProject> queryListAll(PayPackCompanyProjectInput input) { public List<PayCommonProject> queryListAll(PayPackCompanyProjectInput input) {
@@ -120,7 +136,8 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
if(Objects.isNull(payPackCompany)){ if(Objects.isNull(payPackCompany)){
throw new JeroBootException("打包企业不存在"); throw new JeroBootException("打包企业不存在");
} }
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payPackCompany.getPackYear());
if(StringUtils.isBlank(payPackCompanyProject.getProjectIds())){ if(StringUtils.isBlank(payPackCompanyProject.getProjectIds())){
throw new JeroBootException("请选择项目"); throw new JeroBootException("请选择项目");
} }
@@ -150,6 +167,11 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
payPackCompanyProjectNew.setPackId(payPackCompanyProject.getPackId()); payPackCompanyProjectNew.setPackId(payPackCompanyProject.getPackId());
payPackCompanyProjectNew.setCome(PackCommon.COME2); payPackCompanyProjectNew.setCome(PackCommon.COME2);
listPayPackCompanyProject.add(payPackCompanyProjectNew); listPayPackCompanyProject.add(payPackCompanyProjectNew);
// 生成会员有效期
TbMemberProjectSubitem tbMemberProjectSubitem = tbMemberProjectSubitemService.getById(s1);
if (!Objects.isNull(tbMemberProjectSubitem)) {
tbMemberProjectSubitemService.generateValidDate(s1);
}
} }
LambdaQueryWrapper<PayPackCompanyProject> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayPackCompanyProject> query = new LambdaQueryWrapper<>();
query.in(PayPackCompanyProject::getProjectId, Arrays.asList(payPackCompanyProject.getProjectIds())); query.in(PayPackCompanyProject::getProjectId, Arrays.asList(payPackCompanyProject.getProjectIds()));
@@ -297,6 +319,10 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
throw new JeroBootException("不存在打包项目!"); throw new JeroBootException("不存在打包项目!");
} }
PayPackCompanyProject packCompanyProject = listPayPackCompanyProject.get(0); PayPackCompanyProject packCompanyProject = listPayPackCompanyProject.get(0);
String packId = packCompanyProject.getPackId();
PayPackCompany payPackCompany = payPackCompanyService.getById(packId);
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payPackCompany.getPackYear());
Integer projectType = packCompanyProject.getProjectType(); Integer projectType = packCompanyProject.getProjectType();
if (Objects.equals(projectType, Integer.parseInt(PayProjectCommon.PROJECT_TYPE5))|| if (Objects.equals(projectType, Integer.parseInt(PayProjectCommon.PROJECT_TYPE5))||
Objects.equals(projectType, Integer.parseInt(PayProjectCommon.PROJECT_TYPE6))){ Objects.equals(projectType, Integer.parseInt(PayProjectCommon.PROJECT_TYPE6))){
@@ -316,6 +342,17 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
if(Objects.equals(packCompanyProject.getCome(),PackCommon.COME1)){ if(Objects.equals(packCompanyProject.getCome(),PackCommon.COME1)){
throw new JeroBootException("此项目已在合同处创建关联,请先从合同处取消关联!"); throw new JeroBootException("此项目已在合同处创建关联,请先从合同处取消关联!");
} }
// 删除会员有效期
TbMemberProjectSubitem tbMemberProjectSubitem = tbMemberProjectSubitemService.getById(projectId);
if (!Objects.isNull(tbMemberProjectSubitem)) {
LambdaUpdateWrapper<TbMemberProjectSubitem> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(TbMemberProjectSubitem::getId,projectId);
lambdaUpdateWrapper.set(TbMemberProjectSubitem::getEffectiveDate, null);
lambdaUpdateWrapper.set(TbMemberProjectSubitem::getInvalidationDate, null);
lambdaUpdateWrapper.set(TbMemberProjectSubitem::getMemberNo, null);
lambdaUpdateWrapper.set(TbMemberProjectSubitem::getMemberStatus, MemberStatusEnum.UNPAID_FEES.getValue());
tbMemberProjectSubitemService.update(lambdaUpdateWrapper);
}
// 更新项目状态 // 更新项目状态
projectPackService.updateProjectStatus(packCompanyProject.getProjectId(),String.valueOf(projectType),String.valueOf(PackCommon.PACKAGING0),payPackCompanyProject.getPackId()); projectPackService.updateProjectStatus(packCompanyProject.getProjectId(),String.valueOf(projectType),String.valueOf(PackCommon.PACKAGING0),payPackCompanyProject.getPackId());
payPackCompanyProjectService.removeById(packCompanyProject.getId()); payPackCompanyProjectService.removeById(packCompanyProject.getId());
@@ -394,145 +431,145 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
@Override @Override
public void updateHistory() { public void updateHistory() {
LambdaQueryWrapper<PayPackCompany> wrapper = new LambdaQueryWrapper<>(); //LambdaQueryWrapper<PayPackCompany> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayPackCompany::getPackYear,"2024"); //wrapper.eq(PayPackCompany::getPackYear,"2024");
List<PayPackCompany> packCompanyList = payPackCompanyService.list(wrapper); //List<PayPackCompany> packCompanyList = payPackCompanyService.list(wrapper);
List<String> packCompanyIdList = packCompanyList.stream().map(PayPackCompany::getId).collect(Collectors.toList()); //List<String> packCompanyIdList = packCompanyList.stream().map(PayPackCompany::getId).collect(Collectors.toList());
//
LambdaQueryWrapper<PayPackCompanyProject> wrapper1 = new LambdaQueryWrapper<>(); //LambdaQueryWrapper<PayPackCompanyProject> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.in(PayPackCompanyProject::getPackId,packCompanyIdList); //wrapper1.in(PayPackCompanyProject::getPackId,packCompanyIdList);
List<PayPackCompanyProject> list = this.list(wrapper1); //List<PayPackCompanyProject> list = this.list(wrapper1);
ExecutorService fixedThreadPool = ThreadUtil.newExecutor(10); //ExecutorService fixedThreadPool = ThreadUtil.newExecutor(10);
for (PayPackCompanyProject project : list) { //for (PayPackCompanyProject project : list) {
fixedThreadPool.submit(() -> { // fixedThreadPool.submit(() -> {
String projectId = project.getProjectId(); // String projectId = project.getProjectId();
String projectType = project.getProjectType().toString(); // String projectType = project.getProjectType().toString();
// 普通项目 // // 普通项目
if (PayIncomeContractCommon.PROJECT_TYPE1.equals(projectType)){ // if (PayIncomeContractCommon.PROJECT_TYPE1.equals(projectType)){
PayCommonProject old = payCommonProjectMapper.selectById(projectId); // PayCommonProject old = payCommonProjectMapper.selectById(projectId);
if (old == null) { // if (old == null) {
throw new JeroBootException("项目不存在"); // throw new JeroBootException("项目不存在");
} // }
if (!new BigDecimal("0.00").equals(old.getReceivableAmount())) { // if (!new BigDecimal("0.00").equals(old.getReceivableAmount())) {
return; // return;
} // }
PayCommonProject payCommonProject = null; // PayCommonProject payCommonProject = null;
//普通项目管理-添加 // //普通项目管理-添加
List<JSONObject> jsonObjects = sysBaseAPI.getLogByRequestParam(projectId); // List<JSONObject> jsonObjects = sysBaseAPI.getLogByRequestParam(projectId);
if (jsonObjects.isEmpty()) { // if (jsonObjects.isEmpty()) {
return; // return;
} // }
for (JSONObject jsonObject : jsonObjects) { // for (JSONObject jsonObject : jsonObjects) {
String logContent = jsonObject.getString("logContent"); // String logContent = jsonObject.getString("logContent");
if ("普通项目管理-添加".equals(logContent)) { // if ("普通项目管理-添加".equals(logContent)) {
String requestParam = jsonObject.getString("requestParam"); // String requestParam = jsonObject.getString("requestParam");
requestParam = requestParam.substring(1, requestParam.length() - 1); // requestParam = requestParam.substring(1, requestParam.length() - 1);
payCommonProject = JSONObject.parseObject(requestParam, PayCommonProject.class); // payCommonProject = JSONObject.parseObject(requestParam, PayCommonProject.class);
} // }
} // }
if (payCommonProject == null) { // if (payCommonProject == null) {
return; // return;
} // }
PayCommonProject project1 = new PayCommonProject(); // PayCommonProject project1 = new PayCommonProject();
project1.setId(projectId); // project1.setId(projectId);
project1.setReceivableAmount(payCommonProject.getReceivableAmount()); // project1.setReceivableAmount(payCommonProject.getReceivableAmount());
project1.setNoTaxAmount(payCommonProject.getNoTaxAmount()); // project1.setNoTaxAmount(payCommonProject.getNoTaxAmount());
project1.setTax(payCommonProject.getTax()); // project1.setTax(payCommonProject.getTax());
payCommonProjectMapper.updateById(project1); // payCommonProjectMapper.updateById(project1);
}else if (PayIncomeContractCommon.PROJECT_TYPE2.equals(projectType)){ // }else if (PayIncomeContractCommon.PROJECT_TYPE2.equals(projectType)){
// 工作组项目 // // 工作组项目
//工作组成员-修改 工作组成员-添加 // //工作组成员-修改 工作组成员-添加
PayWorkingGroupSubItem old1 = payWorkingGroupSubItemMapper.selectById(projectId); // PayWorkingGroupSubItem old1 = payWorkingGroupSubItemMapper.selectById(projectId);
if (old1 == null) { // if (old1 == null) {
throw new JeroBootException("项目不存在"); // throw new JeroBootException("项目不存在");
} // }
if (!new BigDecimal("0.00").equals(old1.getReceivableAmount())) { // if (!new BigDecimal("0.00").equals(old1.getReceivableAmount())) {
return; // return;
} // }
String workingGroupId = old1.getWorkingGroupId(); // String workingGroupId = old1.getWorkingGroupId();
PayWorkingGroup payWorkingGroup = payWorkingGroupMapper.selectById(workingGroupId); // PayWorkingGroup payWorkingGroup = payWorkingGroupMapper.selectById(workingGroupId);
BigDecimal yearChargeA = payWorkingGroup.getYearChargeA(); // BigDecimal yearChargeA = payWorkingGroup.getYearChargeA();
if (yearChargeA == null || new BigDecimal("0.00").equals(yearChargeA)) { // if (yearChargeA == null || new BigDecimal("0.00").equals(yearChargeA)) {
yearChargeA = new BigDecimal("0.00"); // yearChargeA = new BigDecimal("0.00");
} // }
PayWorkingGroupSubItem payWorking = null; // PayWorkingGroupSubItem payWorking = null;
List<JSONObject> jsonObjects1 = sysBaseAPI.getLogByRequestParam(projectId); // List<JSONObject> jsonObjects1 = sysBaseAPI.getLogByRequestParam(projectId);
for (JSONObject jsonObject : jsonObjects1) { // for (JSONObject jsonObject : jsonObjects1) {
String logContent = jsonObject.getString("logContent"); // String logContent = jsonObject.getString("logContent");
if ("工作组成员-添加".equals(logContent) || "工作组成员-修改".equals(logContent) || "企业端-工作组成员-修改".equals(logContent)) { // if ("工作组成员-添加".equals(logContent) || "工作组成员-修改".equals(logContent) || "企业端-工作组成员-修改".equals(logContent)) {
String requestParam = jsonObject.getString("requestParam"); // String requestParam = jsonObject.getString("requestParam");
requestParam = requestParam.substring(1, requestParam.length() - 1); // requestParam = requestParam.substring(1, requestParam.length() - 1);
PayWorkingGroupSubItem obj = JSONObject.parseObject(requestParam, PayWorkingGroupSubItem.class); // PayWorkingGroupSubItem obj = JSONObject.parseObject(requestParam, PayWorkingGroupSubItem.class);
BigDecimal receivableAmount = obj.getReceivableAmount(); // BigDecimal receivableAmount = obj.getReceivableAmount();
if (new BigDecimal("0.00").equals(receivableAmount) || receivableAmount == null) { // if (new BigDecimal("0.00").equals(receivableAmount) || receivableAmount == null) {
return; // return;
} else { // } else {
payWorking = obj; // payWorking = obj;
} // }
} // }
} // }
if (payWorking == null) { // if (payWorking == null) {
//
PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem(); // PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem();
project2.setId(projectId); // project2.setId(projectId);
//
project2.setReceivableAmount(yearChargeA); // project2.setReceivableAmount(yearChargeA);
BigDecimal noTaxAmount = yearChargeA.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP); // BigDecimal noTaxAmount = yearChargeA.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
project2.setNoTaxAmount(noTaxAmount); // project2.setNoTaxAmount(noTaxAmount);
project2.setTax(yearChargeA.subtract(noTaxAmount)); // project2.setTax(yearChargeA.subtract(noTaxAmount));
payWorkingGroupSubItemMapper.updateById(project2); // payWorkingGroupSubItemMapper.updateById(project2);
} else { // } else {
PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem(); // PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem();
project2.setId(projectId); // project2.setId(projectId);
project2.setReceivableAmount(payWorking.getReceivableAmount()); // project2.setReceivableAmount(payWorking.getReceivableAmount());
project2.setNoTaxAmount(payWorking.getNoTaxAmount()); // project2.setNoTaxAmount(payWorking.getNoTaxAmount());
project2.setTax(payWorking.getTax()); // project2.setTax(payWorking.getTax());
payWorkingGroupSubItemMapper.updateById(project2); // payWorkingGroupSubItemMapper.updateById(project2);
} // }
}else if (PayIncomeContractCommon.PROJECT_TYPE4.equals(projectType)){ // }else if (PayIncomeContractCommon.PROJECT_TYPE4.equals(projectType)){
//会员项目 // //会员项目
PayMemberProjectSubitem old2 = payMemberProjectSubitemMapper.selectById(projectId); // PayMemberProjectSubitem old2 = payMemberProjectSubitemMapper.selectById(projectId);
if (old2 == null) { // if (old2 == null) {
throw new JeroBootException("项目不存在"); // throw new JeroBootException("项目不存在");
} // }
if (!new BigDecimal("0.00").equals(old2.getAmountReceivable())) { // if (!new BigDecimal("0.00").equals(old2.getAmountReceivable())) {
return; // return;
} // }
String memberProjectId = old2.getProjectId(); // String memberProjectId = old2.getProjectId();
PayMemberProject memberProject = payMemberProjectService.getById(memberProjectId); // PayMemberProject memberProject = payMemberProjectService.getById(memberProjectId);
PayMemberProjectSubitem member = new PayMemberProjectSubitem(); // PayMemberProjectSubitem member = new PayMemberProjectSubitem();
member.setId(projectId); // member.setId(projectId);
member.setAmountReceivable(memberProject.getChargeStandard()); // member.setAmountReceivable(memberProject.getChargeStandard());
BigDecimal noTaxAmount = memberProject.getChargeStandard().divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP); // BigDecimal noTaxAmount = memberProject.getChargeStandard().divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
member.setNoTaxAmount(noTaxAmount); // member.setNoTaxAmount(noTaxAmount);
member.setTax(memberProject.getChargeStandard().subtract(noTaxAmount)); // member.setTax(memberProject.getChargeStandard().subtract(noTaxAmount));
payMemberProjectSubitemMapper.updateById(member); // payMemberProjectSubitemMapper.updateById(member);
}else if (PayIncomeContractCommon.PROJECT_TYPE5.equals(projectType)){ // }else if (PayIncomeContractCommon.PROJECT_TYPE5.equals(projectType)){
//标协会员 // //标协会员
TbMemberProjectSubitem old3 = tbMemberProjectSubitemMapper.selectById(projectId); // TbMemberProjectSubitem old3 = tbMemberProjectSubitemMapper.selectById(projectId);
if (old3 == null) { // if (old3 == null) {
throw new JeroBootException("项目不存在"); // throw new JeroBootException("项目不存在");
} // }
if (!new BigDecimal("0.00").equals(old3.getAmountReceivable())) { // if (!new BigDecimal("0.00").equals(old3.getAmountReceivable())) {
return; // return;
} // }
TbMemberProjectSubitem tbMember = new TbMemberProjectSubitem(); // TbMemberProjectSubitem tbMember = new TbMemberProjectSubitem();
Integer memberNature = old3.getMemberNature(); // Integer memberNature = old3.getMemberNature();
BigDecimal amountReceivable = null; // BigDecimal amountReceivable = null;
if (memberNature.equals(1)) { // if (memberNature.equals(1)) {
amountReceivable = new BigDecimal("5000"); // amountReceivable = new BigDecimal("5000");
} else { // } else {
amountReceivable = new BigDecimal("2000"); // amountReceivable = new BigDecimal("2000");
} // }
tbMember.setId(projectId); // tbMember.setId(projectId);
tbMember.setAmountReceivable(amountReceivable); // tbMember.setAmountReceivable(amountReceivable);
BigDecimal noTaxAmount1 = amountReceivable.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP); // BigDecimal noTaxAmount1 = amountReceivable.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
tbMember.setNoTaxAmount(noTaxAmount1); // tbMember.setNoTaxAmount(noTaxAmount1);
tbMember.setTax(amountReceivable.subtract(noTaxAmount1)); // tbMember.setTax(amountReceivable.subtract(noTaxAmount1));
tbMemberProjectSubitemMapper.updateById(tbMember); // tbMemberProjectSubitemMapper.updateById(tbMember);
} // }
}); // });
} //}
//if (!fixedThreadPool.isShutdown()) { //if (!fixedThreadPool.isShutdown()) {
// fixedThreadPool.shutdown(); // fixedThreadPool.shutdown();
//} //}
@@ -540,5 +577,19 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
// fixedThreadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); // fixedThreadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
//} catch (InterruptedException e) { //} catch (InterruptedException e) {
//} //}
LambdaQueryWrapper<PayMeetingSituation> wrapper2 = new LambdaQueryWrapper<>();
wrapper2.eq(PayMeetingSituation::getPayMode, MeetingSubitemCommon.PAY_MODE_3);
List<PayMeetingSituation> situationList = meetingSituationService.list(wrapper2);
for (PayMeetingSituation situation : situationList) {
String meetingId = situation.getMeetingId();
PayMeeting meeting = meetingService.getById(meetingId);
BigDecimal meetingCosts = meeting.getMeetingCosts();
PayMeetingSituation project2 = new PayMeetingSituation();
project2.setId(situation.getId());
project2.setAmountReceivable(meetingCosts);
BigDecimal noTaxAmount = meetingCosts.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
project2.setNoTaxAmount(noTaxAmount);
project2.setTax(meetingCosts.subtract(noTaxAmount));
}
} }
} }
@@ -4,12 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.common.ProjectCommon; import com.jero.common.common.ProjectCommon;
import com.jero.common.enums.PaymentStatusEnum;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.common.vo.ProjectStatusVO;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject; import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService; import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService; import com.jero.mail.service.IPayMailBillService;
@@ -17,28 +13,25 @@ import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompany; import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.mapper.PayPackCompanyMapper; import com.jero.pack.mapper.PayPackCompanyMapper;
import com.jero.pack.service.IPayPackCompanyService; import com.jero.pack.service.IPayPackCompanyService;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroupSubItem; import com.jero.project.service.AnnualDataLockingService;
import com.jero.statistics.entity.AllMoney; import com.jero.statistics.entity.AllMoney;
import com.jero.temporary.entity.PayCompanyManagementTemporary; import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* @Description: pay_pack_company * @Description: pay_pack_company
@@ -63,6 +56,8 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
private IPayMailBillProjectService payMailBillProjectService; private IPayMailBillProjectService payMailBillProjectService;
@Resource @Resource
private IPayMailBillService payMailBillService; private IPayMailBillService payMailBillService;
@Resource
private AnnualDataLockingService annualDataLockingService;
@Override @Override
public IPage<PayPackCompany> queryPageList(Page<PayPackCompany> page, PayPackCompany payPackCompany) { public IPage<PayPackCompany> queryPageList(Page<PayPackCompany> page, PayPackCompany payPackCompany) {
@@ -72,10 +67,13 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
@Override @Override
@Transactional @Transactional
public PayPackCompany addPayPackCompany(PayPackCompany payPackCompany) { public PayPackCompany addPayPackCompany(PayPackCompany payPackCompany) {
String packYear = payPackCompany.getPackYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(packYear);
try { try {
LambdaQueryWrapper<PayPackCompany> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayPackCompany> query = new LambdaQueryWrapper<>();
query.eq(PayPackCompany::getCompanyId,payPackCompany.getCompanyId()); query.eq(PayPackCompany::getCompanyId,payPackCompany.getCompanyId());
query.eq(PayPackCompany::getPackYear,payPackCompany.getPackYear()); query.eq(PayPackCompany::getPackYear, packYear);
PayPackCompany payPackCompanyNew = payPackCompanyService.getOne(query); PayPackCompany payPackCompanyNew = payPackCompanyService.getOne(query);
if(!Objects.isNull(payPackCompanyNew)){ if(!Objects.isNull(payPackCompanyNew)){
throw new JeroBootException("该年份下已存在此打包企业!"); throw new JeroBootException("该年份下已存在此打包企业!");
@@ -84,7 +82,7 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
log.error("",e); log.error("",e);
throw new JeroBootException("该年份下已存在此打包企业!"); throw new JeroBootException("该年份下已存在此打包企业!");
} }
setPayPackCompanyAdd(payPackCompany); setPayPackCompanyAdd(payPackCompany,annualDataLocking);
payPackCompany.setPackPrincipalName(sysUserService.getById(payPackCompany.getPackPrincipalId()).getRealname()); payPackCompany.setPackPrincipalName(sysUserService.getById(payPackCompany.getPackPrincipalId()).getRealname());
payPackCompanyService.save(payPackCompany); payPackCompanyService.save(payPackCompany);
return payPackCompany; return payPackCompany;
@@ -94,6 +92,11 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
@Transactional @Transactional
public void editPayPackCompany(PayPackCompany payPackCompany) { public void editPayPackCompany(PayPackCompany payPackCompany) {
PayPackCompany payPackCompanyOld = payPackCompanyService.getById(payPackCompany.getId()); PayPackCompany payPackCompanyOld = payPackCompanyService.getById(payPackCompany.getId());
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payPackCompanyOld.getPackYear());
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking1 = annualDataLockingService.judgeUserYear(payPackCompany.getPackYear());
if(Objects.isNull(payPackCompanyOld)){ if(Objects.isNull(payPackCompanyOld)){
throw new JeroBootException("打包企业不存在!"); throw new JeroBootException("打包企业不存在!");
} }
@@ -114,7 +117,7 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
} }
payPackCompany.setPackPrincipalName(sysUserService.getById(payPackCompany.getPackPrincipalId()).getRealname()); payPackCompany.setPackPrincipalName(sysUserService.getById(payPackCompany.getPackPrincipalId()).getRealname());
setPayPackCompanyEdit(payPackCompany,payPackCompanyOld); setPayPackCompanyEdit(payPackCompany,payPackCompanyOld,annualDataLocking);
payPackCompanyService.updateById(payPackCompany); payPackCompanyService.updateById(payPackCompany);
} }
@@ -156,23 +159,23 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
* @Return * @Return
* @Exception * @Exception
*/ */
private PayPackCompany setPayPackCompanyAdd(PayPackCompany payPackCompany){ private PayPackCompany setPayPackCompanyAdd(PayPackCompany payPackCompany, AnnualDataLocking annualDataLocking){
// 企业 // 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payPackCompany.getCompanyId()); PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payPackCompany.getCompanyId(), annualDataLocking);
if(Objects.isNull(chargeCompanyName)){ if(Objects.isNull(chargeCompanyName)){
throw new JeroBootException("企业名称为空!"); throw new JeroBootException("企业名称为空!");
} }
payPackCompany.setCompanyTemporaryId(chargeCompanyName.getId()); payPackCompany.setCompanyTemporaryId(chargeCompanyName.getId());
payPackCompany.setCompanyTemporaryName(chargeCompanyName.getCompanyName()); payPackCompany.setCompanyTemporaryName(chargeCompanyName.getCompanyName());
// 企业联系人 // 企业联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getCompanyContactId()); PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getCompanyContactId(), annualDataLocking);
if(Objects.isNull(contactsName)){ if(Objects.isNull(contactsName)){
throw new JeroBootException("企业联系人名称为空!"); throw new JeroBootException("企业联系人名称为空!");
} }
payPackCompany.setCompanyContactTemporaryId(contactsName.getId()); payPackCompany.setCompanyContactTemporaryId(contactsName.getId());
payPackCompany.setCompanyContactTemporaryName(contactsName.getName()); payPackCompany.setCompanyContactTemporaryName(contactsName.getName());
// 邮寄联系人 // 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getPackContactId()); PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getPackContactId(), annualDataLocking);
if(Objects.isNull(mailContactsName)){ if(Objects.isNull(mailContactsName)){
throw new JeroBootException("邮寄联系人名称为空!"); throw new JeroBootException("邮寄联系人名称为空!");
} }
@@ -193,41 +196,41 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
* @Return * @Return
* @Exception * @Exception
*/ */
private PayPackCompany setPayPackCompanyEdit(PayPackCompany payPackCompany,PayPackCompany payPackCompanyOld){ private PayPackCompany setPayPackCompanyEdit(PayPackCompany payPackCompany, PayPackCompany payPackCompanyOld, AnnualDataLocking annualDataLocking){
if(!Objects.equals(payPackCompanyOld.getCompanyTemporaryId(),payPackCompany.getCompanyId())){ if(!Objects.equals(payPackCompanyOld.getCompanyTemporaryId(),payPackCompany.getCompanyId())){
// 企业 // 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payPackCompany.getCompanyId()); PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payPackCompany.getCompanyId(), annualDataLocking);
if(Objects.isNull(chargeCompanyName)){ if(Objects.isNull(chargeCompanyName)){
throw new JeroBootException("企业名称为空!"); throw new JeroBootException("企业名称为空!");
} }
payPackCompany.setCompanyTemporaryId(chargeCompanyName.getId()); payPackCompany.setCompanyTemporaryId(chargeCompanyName.getId());
payPackCompany.setCompanyTemporaryName(chargeCompanyName.getCompanyName()); payPackCompany.setCompanyTemporaryName(chargeCompanyName.getCompanyName());
payCompanyManagementTemporaryService.removeById(payPackCompanyOld.getCompanyTemporaryId()); //payCompanyManagementTemporaryService.removeById(payPackCompanyOld.getCompanyTemporaryId());
}else{ }else{
payPackCompany.setCompanyId(payPackCompanyOld.getCompanyId()); payPackCompany.setCompanyId(payPackCompanyOld.getCompanyId());
} }
// 企业联系人 // 企业联系人
if(!Objects.equals(payPackCompanyOld.getCompanyContactTemporaryId(),payPackCompany.getCompanyContactId())){ if(!Objects.equals(payPackCompanyOld.getCompanyContactTemporaryId(),payPackCompany.getCompanyContactId())){
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getCompanyContactId()); PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getCompanyContactId(), annualDataLocking);
if(Objects.isNull(contactsName)){ if(Objects.isNull(contactsName)){
throw new JeroBootException("企业联系人名称为空!"); throw new JeroBootException("企业联系人名称为空!");
} }
payPackCompany.setCompanyContactTemporaryId(contactsName.getId()); payPackCompany.setCompanyContactTemporaryId(contactsName.getId());
payPackCompany.setCompanyContactTemporaryName(contactsName.getName()); payPackCompany.setCompanyContactTemporaryName(contactsName.getName());
payContactsManagementTemporaryService.removeById(payPackCompanyOld.getCompanyContactTemporaryId()); // payContactsManagementTemporaryService.removeById(payPackCompanyOld.getCompanyContactTemporaryId());
}else{ }else{
payPackCompany.setCompanyContactId(payPackCompanyOld.getCompanyContactId()); payPackCompany.setCompanyContactId(payPackCompanyOld.getCompanyContactId());
} }
// 打包联系人 // 打包联系人
if(!Objects.equals(payPackCompanyOld.getPackContactTemporaryId(),payPackCompany.getPackContactId())){ if(!Objects.equals(payPackCompanyOld.getPackContactTemporaryId(),payPackCompany.getPackContactId())){
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getPackContactId()); PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getPackContactId(), annualDataLocking);
if(Objects.isNull(mailContactsName)){ if(Objects.isNull(mailContactsName)){
throw new JeroBootException("打包联系人名称为空!"); throw new JeroBootException("打包联系人名称为空!");
} }
payPackCompany.setPackContactTemporaryId(mailContactsName.getId()); payPackCompany.setPackContactTemporaryId(mailContactsName.getId());
payPackCompany.setPackContactTemporaryName(mailContactsName.getName()); payPackCompany.setPackContactTemporaryName(mailContactsName.getName());
payContactsManagementTemporaryService.removeById(payPackCompanyOld.getPackContactTemporaryId()); // payContactsManagementTemporaryService.removeById(payPackCompanyOld.getPackContactTemporaryId());
}else{ }else{
payPackCompany.setPackContactId(payPackCompanyOld.getPackContactId()); payPackCompany.setPackContactId(payPackCompanyOld.getPackContactId());
} }
@@ -15,9 +15,11 @@ import com.jero.member.entity.TbCertificatePayment;
import com.jero.member.entity.TbMemberProjectSubitem; import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.ITbCertificatePaymentService; import com.jero.member.service.ITbCertificatePaymentService;
import com.jero.member.service.ITbMemberProjectSubitemService; import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.payment.entity.PayConfirmPaymentRecord;
import com.jero.payment.entity.PayPaymentRecord; import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService; import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.vo.EditBillTypeParam; import com.jero.payment.vo.EditBillTypeParam;
import com.jero.payment.vo.EditReceivableAmountParam;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayCommonProject;
import com.jero.project.vo.PayCommonProjectOutput; import com.jero.project.vo.PayCommonProjectOutput;
import com.jero.standards.memberinfo.entity.MemberInfo; import com.jero.standards.memberinfo.entity.MemberInfo;
@@ -25,6 +27,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
@@ -194,8 +197,22 @@ public class PayPaymentRecordController extends JeroController<PayPaymentRecord,
return Result.OK("编辑成功!"); return Result.OK("编辑成功!");
} }
/** /**
* 添加开票 * 编辑待确收金额
*/
@RequiresPermissions("incomePaymentAndInvoiving:editReceivableAmount")
@AutoLog(value = "编辑待确收金额")
@ApiOperation(value="编辑待确收金额", notes="编辑待确收金额")
@PostMapping(value = "/editReceivableAmount")
public Result<?> editReceivableAmount(@Validated @RequestBody EditReceivableAmountParam editReceivableAmountParam) {
ValidUtil.validate(editReceivableAmountParam);
payPaymentRecordService.editReceivableAmount(editReceivableAmountParam);
return Result.OK("编辑成功!");
}
/**
* 编辑开票类型
*/ */
@ApiOperation(value = "编辑开票类型", notes = "编辑开票类型") @ApiOperation(value = "编辑开票类型", notes = "编辑开票类型")
@RequiresPermissions("packProject:changeInvoiceInfo") @RequiresPermissions("packProject:changeInvoiceInfo")
@@ -51,7 +51,8 @@ public interface IPayPaymentCheckService extends IService<PayPaymentRecordSub> {
* @param amountReceivable 应收 * @param amountReceivable 应收
* @param paidAmount 实收 * @param paidAmount 实收
* @param paymentStatus 缴费状态 * @param paymentStatus 缴费状态
* @param changeReceivableAmountFlag
* @return * @return
*/ */
String getPaymentStatus(BigDecimal amountReceivable,BigDecimal paidAmount,String paymentStatus); String getPaymentStatus(BigDecimal amountReceivable, BigDecimal paidAmount, String paymentStatus, boolean changeReceivableAmountFlag);
} }
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.payment.entity.PayPaymentRecord; import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.vo.EditBillTypeParam; import com.jero.payment.vo.EditBillTypeParam;
import com.jero.payment.vo.EditReceivableAmountParam;
import com.jero.payment.vo.TbCheckVo; import com.jero.payment.vo.TbCheckVo;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayCommonProject;
import com.jero.project.vo.PayCommonProjectOutput; import com.jero.project.vo.PayCommonProjectOutput;
@@ -109,6 +110,13 @@ public interface IPayPaymentRecordService extends IService<PayPaymentRecord> {
* @param payPaymentRecord * @param payPaymentRecord
*/ */
void editAmountReceived(PayPaymentRecord payPaymentRecord); void editAmountReceived(PayPaymentRecord payPaymentRecord);
/**
* 编辑待确收金额
* @param editReceivableAmountParam
*/
void editReceivableAmount(EditReceivableAmountParam editReceivableAmountParam);
/** /**
* 标协会员项目来款推送到标协项目 * 标协会员项目来款推送到标协项目
* @param typr5List * @param typr5List
@@ -16,7 +16,6 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService; import com.jero.common.service.SendMessageService;
import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil; import com.jero.common.util.PasswordUtil;
import com.jero.company.entity.PayContactsManagement; import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService; import com.jero.company.service.IPayContactsManagementService;
@@ -531,7 +530,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
payPaymentRecords.add(payPaymentRecord); payPaymentRecords.add(payPaymentRecord);
payPaymentRecordService.addAmountReceived(payPaymentRecords,ProjectCommon.PAYMENT_FLAG2,"check"); payPaymentRecordService.addAmountReceived(payPaymentRecords,ProjectCommon.PAYMENT_FLAG2,"check");
}else{ }else{
paymentStatus = getPaymentStatus(payCommonProject.getReceivableAmount(), payCommonProject.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode());//缴费状态 paymentStatus = getPaymentStatus(payCommonProject.getReceivableAmount(), payCommonProject.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode(), false);//缴费状态
payCommonProject.setPaymentStatus(paymentStatus); payCommonProject.setPaymentStatus(paymentStatus);
//更新主列表 //更新主列表
payCommonProjectMapper.updateById(payCommonProject); payCommonProjectMapper.updateById(payCommonProject);
@@ -555,7 +554,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
payPaymentRecords.add(payPaymentRecord); payPaymentRecords.add(payPaymentRecord);
payPaymentRecordService.addAmountReceived(payPaymentRecords,ProjectCommon.PAYMENT_FLAG2,"check"); payPaymentRecordService.addAmountReceived(payPaymentRecords,ProjectCommon.PAYMENT_FLAG2,"check");
}else{ }else{
paymentStatus = getPaymentStatus(payWorking.getReceivableAmount(), payWorking.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode());//缴费状态 paymentStatus = getPaymentStatus(payWorking.getReceivableAmount(), payWorking.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode(), false);//缴费状态
payWorking.setPaymentStatus(paymentStatus); payWorking.setPaymentStatus(paymentStatus);
//更新主列表 //更新主列表
payWorkingGroupSubItemMapper.updateById(payWorking); payWorkingGroupSubItemMapper.updateById(payWorking);
@@ -563,6 +562,9 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
project = payWorkingGroup.getWorkingGroupProject(); project = payWorkingGroup.getWorkingGroupProject();
checkSendMessage(payPaymentRecord.getCreateBy(), payPaymentRecord.getProjectId(),project, String.valueOf(payPaymentRecord.getProjectType())); checkSendMessage(payPaymentRecord.getCreateBy(), payPaymentRecord.getProjectId(),project, String.valueOf(payPaymentRecord.getProjectType()));
} }
// 更新审核状态为已审核
payWorking.setCheckPaymentStatus(PayProjectCommon.IS_CHECK_PAY_MENT);
payWorkingGroupSubItemMapper.updateById(payWorking);
break; break;
//会员项目 //会员项目
@@ -579,7 +581,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
payPaymentRecords.add(payPaymentRecord); payPaymentRecords.add(payPaymentRecord);
payPaymentRecordService.addAmountReceived(payPaymentRecords,ProjectCommon.PAYMENT_FLAG2,"check"); payPaymentRecordService.addAmountReceived(payPaymentRecords,ProjectCommon.PAYMENT_FLAG2,"check");
}else{ }else{
paymentStatus = getPaymentStatus(member.getAmountReceivable(), member.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode());//缴费状态 paymentStatus = getPaymentStatus(member.getAmountReceivable(), member.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode(), false);//缴费状态
member.setPaymentStatus(paymentStatus); member.setPaymentStatus(paymentStatus);
//更新主列表 //更新主列表
payMemberProjectSubitemMapper.updateById(member); payMemberProjectSubitemMapper.updateById(member);
@@ -618,7 +620,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
} }
payPaymentRecordService.sendMessage( principalId,project, payPaymentRecord,listId); payPaymentRecordService.sendMessage( principalId,project, payPaymentRecord,listId);
}else{ }else{
paymentStatus = getPaymentStatus(tbMember.getAmountReceivable(), tbMember.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode());//缴费状态 paymentStatus = getPaymentStatus(tbMember.getAmountReceivable(), tbMember.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode(), false);//缴费状态
tbMember.setPaymentStatus(paymentStatus); tbMember.setPaymentStatus(paymentStatus);
tbCheckVo.setCheckResult(PayProjectCommon.NO); tbCheckVo.setCheckResult(PayProjectCommon.NO);
@@ -667,7 +669,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
inAccount = payPaymentRecordService.getInAccount(tbMemberCertificate.getAmountReceivable(), newPaidAmount);//到账状态 inAccount = payPaymentRecordService.getInAccount(tbMemberCertificate.getAmountReceivable(), newPaidAmount);//到账状态
tbMemberCertificate.setPaidAmount(newPaidAmount); tbMemberCertificate.setPaidAmount(newPaidAmount);
tbMemberCertificate.setInAccount(inAccount); tbMemberCertificate.setInAccount(inAccount);
paymentStatus = getPaymentStatus(tbMemberCertificate.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 paymentStatus = getPaymentStatus(tbMemberCertificate.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode(), false);//缴费状态
tbMemberCertificate.setPaymentStatus(paymentStatus); tbMemberCertificate.setPaymentStatus(paymentStatus);
//插入来款记录表 //插入来款记录表
payPaymentRecord.setId(null); payPaymentRecord.setId(null);
@@ -691,7 +693,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
} }
payPaymentRecordService.sendMessage( principalId,project, payPaymentRecord,listId); payPaymentRecordService.sendMessage( principalId,project, payPaymentRecord,listId);
}else{ }else{
paymentStatus = getPaymentStatus(tbMemberCertificate.getAmountReceivable(), tbMemberCertificate.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode());//缴费状态 paymentStatus = getPaymentStatus(tbMemberCertificate.getAmountReceivable(), tbMemberCertificate.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode(), false);//缴费状态
tbMemberCertificate.setPaymentStatus(paymentStatus); tbMemberCertificate.setPaymentStatus(paymentStatus);
tbCheckCerVo.setCheckResult(PayProjectCommon.NO); tbCheckCerVo.setCheckResult(PayProjectCommon.NO);
@@ -740,28 +742,44 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
* @param amountReceivable 应收 * @param amountReceivable 应收
* @param paidAmount 实收 * @param paidAmount 实收
* @param paymentStatus 缴费状态 * @param paymentStatus 缴费状态
* @param changeReceivableAmountFlag 更改待确收金额标识
* @return * @return
*/ */
@Override @Override
public String getPaymentStatus(BigDecimal amountReceivable,BigDecimal paidAmount,String paymentStatus){ public String getPaymentStatus(BigDecimal amountReceivable, BigDecimal paidAmount, String paymentStatus, boolean changeReceivableAmountFlag){
if(amountReceivable == null){ if(amountReceivable == null){
amountReceivable = new BigDecimal("0.00"); amountReceivable = new BigDecimal("0.00");
} }
if(paidAmount == null){ if(paidAmount == null){
paidAmount = new BigDecimal("0.00"); paidAmount = new BigDecimal("0.00");
} }
if (changeReceivableAmountFlag){
// 实收金额 < 待确收金额 && 不等于待审核/已拒绝 // 实收金额 < 待确收金额 && 不等于待审核/已拒绝
if(paidAmount.compareTo(amountReceivable) < 0 if(paidAmount.compareTo(amountReceivable) < 0
&& !PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(paymentStatus) && !PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(paymentStatus)
&& !PaymentStatusEnum.REJECTED.getCode().equals(paymentStatus)){ && !PaymentStatusEnum.REJECTED.getCode().equals(paymentStatus)){
paymentStatus = PaymentStatusEnum.TO_BE_UPLOADED.getCode();//待上传 paymentStatus = PaymentStatusEnum.TO_BE_UPLOADED.getCode();//待上传
} }
// 应收>0 && 实收金额 == 待确收金额 && 不等于待审核
if(amountReceivable.compareTo(new BigDecimal("0.00")) > 0
&& paidAmount.compareTo(amountReceivable) == 0
&& !PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(paymentStatus)){
paymentStatus = PaymentStatusEnum.COMPLETED.getCode();//已完结
}
}else {
// 实收金额 < 待确收金额 && 不等于待审核/已拒绝
if(paidAmount.compareTo(amountReceivable) < 0
//&& !PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(paymentStatus)
&& !PaymentStatusEnum.REJECTED.getCode().equals(paymentStatus)){
paymentStatus = PaymentStatusEnum.TO_BE_UPLOADED.getCode();//待上传
}
// 应收>0 && 实收金额 == 待确收金额 // 应收>0 && 实收金额 == 待确收金额
if(amountReceivable.compareTo(new BigDecimal("0.00")) > 0 if(amountReceivable.compareTo(new BigDecimal("0.00")) > 0
&& paidAmount.compareTo(amountReceivable) == 0){ && paidAmount.compareTo(amountReceivable) == 0){
paymentStatus = PaymentStatusEnum.COMPLETED.getCode();//已完结 paymentStatus = PaymentStatusEnum.COMPLETED.getCode();//已完结
} }
}
return paymentStatus; return paymentStatus;
} }
} }
@@ -18,7 +18,6 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService; import com.jero.common.service.SendMessageService;
import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil; import com.jero.common.util.PasswordUtil;
import com.jero.common.util.oConvertUtils; import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayCompanyManagement; import com.jero.company.entity.PayCompanyManagement;
@@ -27,6 +26,7 @@ import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService; import com.jero.company.service.IPayContactsManagementService;
import com.jero.config.StaticConfig; import com.jero.config.StaticConfig;
import com.jero.contract.common.PayIncomeContractCommon; import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.mail.service.IPayMailBillService;
import com.jero.meeting.common.MeetingSubitemCommon; import com.jero.meeting.common.MeetingSubitemCommon;
import com.jero.meeting.entity.PayMeeting; import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation; import com.jero.meeting.entity.PayMeetingSituation;
@@ -50,6 +50,7 @@ import com.jero.payment.mapper.PayPaymentRecordMapper;
import com.jero.payment.service.IPayPaymentCheckService; import com.jero.payment.service.IPayPaymentCheckService;
import com.jero.payment.service.IPayPaymentRecordService; import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.vo.EditBillTypeParam; import com.jero.payment.vo.EditBillTypeParam;
import com.jero.payment.vo.EditReceivableAmountParam;
import com.jero.payment.vo.TbCheckVo; import com.jero.payment.vo.TbCheckVo;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayCommonProject;
@@ -139,7 +140,10 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
private IPayWorkingGroupSubItemContactsService payWorkingGroupSubItemContactsService; private IPayWorkingGroupSubItemContactsService payWorkingGroupSubItemContactsService;
@Resource @Resource
private IPayPackCompanyService payPackCompanyService; private IPayPackCompanyService payPackCompanyService;
@Resource
private IPayMailBillService mailBillService;
@Resource
private PayConfirmPaymentRecordService confirmPaymentRecordService;
@Value("${jero.path.upload}") @Value("${jero.path.upload}")
private String upLoadPath; private String upLoadPath;
@@ -407,7 +411,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =addPaidAmount(payCommonProject.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 newPaidAmount =addPaidAmount(payCommonProject.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(payCommonProject.getReceivableAmount(), newPaidAmount);//到账状态 inAccount = getInAccount(payCommonProject.getReceivableAmount(), newPaidAmount);//到账状态
paymentStatus = payPaymentCheckService.getPaymentStatus(payCommonProject.getReceivableAmount(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 paymentStatus = payCommonProject.getPaymentStatus();
paymentStatus = payPaymentCheckService.getPaymentStatus(payCommonProject.getReceivableAmount(), newPaidAmount, paymentStatus, false);//缴费状态
tax = addPaidAmount(payCommonProject.getPaidTax(),payPaymentRecord.getTax()); tax = addPaidAmount(payCommonProject.getPaidTax(),payPaymentRecord.getTax());
noTaxAmount = addPaidAmount(payCommonProject.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); noTaxAmount = addPaidAmount(payCommonProject.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
payCommonProject.setPaidTax(tax); payCommonProject.setPaidTax(tax);
@@ -438,7 +443,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =addPaidAmount(payWorking.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 newPaidAmount =addPaidAmount(payWorking.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(payWorking.getReceivableAmount(), newPaidAmount);//到账状态 inAccount = getInAccount(payWorking.getReceivableAmount(), newPaidAmount);//到账状态
paymentStatus = payPaymentCheckService.getPaymentStatus(payWorking.getReceivableAmount(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 paymentStatus = payWorking.getPaymentStatus();
paymentStatus = payPaymentCheckService.getPaymentStatus(payWorking.getReceivableAmount(), newPaidAmount, paymentStatus, false);//缴费状态
tax = addPaidAmount(payWorking.getPaidTax(),payPaymentRecord.getTax()); tax = addPaidAmount(payWorking.getPaidTax(),payPaymentRecord.getTax());
noTaxAmount = addPaidAmount(payWorking.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); noTaxAmount = addPaidAmount(payWorking.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
payWorking.setPaidTax(tax); payWorking.setPaidTax(tax);
@@ -467,7 +473,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =addPaidAmount(meeting.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 newPaidAmount =addPaidAmount(meeting.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(meeting.getAmountReceivable(), newPaidAmount);//到账状态 inAccount = getInAccount(meeting.getAmountReceivable(), newPaidAmount);//到账状态
paymentStatus = payPaymentCheckService.getPaymentStatus(meeting.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 paymentStatus = meeting.getPaymentStatus();
paymentStatus = payPaymentCheckService.getPaymentStatus(meeting.getAmountReceivable(), newPaidAmount, paymentStatus, false);//缴费状态
tax = addPaidAmount(meeting.getPaidTax(),payPaymentRecord.getTax()); tax = addPaidAmount(meeting.getPaidTax(),payPaymentRecord.getTax());
noTaxAmount = addPaidAmount(meeting.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); noTaxAmount = addPaidAmount(meeting.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
meeting.setPaidTax(tax); meeting.setPaidTax(tax);
@@ -494,7 +501,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =addPaidAmount(member.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 newPaidAmount =addPaidAmount(member.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(member.getAmountReceivable(), newPaidAmount);//到账状态 inAccount = getInAccount(member.getAmountReceivable(), newPaidAmount);//到账状态
paymentStatus = payPaymentCheckService.getPaymentStatus(member.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 paymentStatus = member.getPaymentStatus();
paymentStatus = payPaymentCheckService.getPaymentStatus(member.getAmountReceivable(), newPaidAmount, paymentStatus, false);//缴费状态
tax = addPaidAmount(member.getPaidTax(),payPaymentRecord.getTax()); tax = addPaidAmount(member.getPaidTax(),payPaymentRecord.getTax());
noTaxAmount = addPaidAmount(member.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); noTaxAmount = addPaidAmount(member.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
member.setPaidTax(tax); member.setPaidTax(tax);
@@ -524,7 +532,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =addPaidAmount(tbMember.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 newPaidAmount =addPaidAmount(tbMember.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(tbMember.getAmountReceivable(), newPaidAmount);//到账状态 inAccount = getInAccount(tbMember.getAmountReceivable(), newPaidAmount);//到账状态
paymentStatus = payPaymentCheckService.getPaymentStatus(tbMember.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 paymentStatus = tbMember.getPaymentStatus();
paymentStatus = payPaymentCheckService.getPaymentStatus(tbMember.getAmountReceivable(), newPaidAmount, paymentStatus, false);//缴费状态
tax = addPaidAmount(tbMember.getPaidTax(),payPaymentRecord.getTax()); tax = addPaidAmount(tbMember.getPaidTax(),payPaymentRecord.getTax());
noTaxAmount = addPaidAmount(tbMember.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); noTaxAmount = addPaidAmount(tbMember.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
tbMember.setPaidTax(tax); tbMember.setPaidTax(tax);
@@ -556,7 +565,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =addPaidAmount(tbMemberCertificate.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 newPaidAmount =addPaidAmount(tbMemberCertificate.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(tbMemberCertificate.getAmountReceivable(), newPaidAmount);//到账状态 inAccount = getInAccount(tbMemberCertificate.getAmountReceivable(), newPaidAmount);//到账状态
paymentStatus = payPaymentCheckService.getPaymentStatus(tbMemberCertificate.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 paymentStatus = tbMemberCertificate.getPaymentStatus();
paymentStatus = payPaymentCheckService.getPaymentStatus(tbMemberCertificate.getAmountReceivable(), newPaidAmount, paymentStatus, false);//缴费状态
tax = addPaidAmount(tbMemberCertificate.getPaidTax(),payPaymentRecord.getTax()); tax = addPaidAmount(tbMemberCertificate.getPaidTax(),payPaymentRecord.getTax());
noTaxAmount = addPaidAmount(tbMemberCertificate.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); noTaxAmount = addPaidAmount(tbMemberCertificate.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
tbMemberCertificate.setPaidTax(tax); tbMemberCertificate.setPaidTax(tax);
@@ -884,6 +894,31 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
} }
} }
/**
* 判断能否修改待确收金额
* @param receivableAmount 待确收金额
* @param paidAmount 到账金额
* @param confirmAmount 确认收入金额
* @param invoiceAmount 开票金额
*/
private void editReceivableAmountFlag(BigDecimal receivableAmount, BigDecimal paidAmount, BigDecimal confirmAmount, BigDecimal invoiceAmount) {
if(receivableAmount == null){
receivableAmount = new BigDecimal("0");
}
//待确收金额不能小于到账金额
if (paidAmount != null && receivableAmount.compareTo(paidAmount) < 0){
throw new JeroBootException("待确收金额不能小于到账金额");
}
//待确收金额不能小于确认收入金额
if (confirmAmount != null && receivableAmount.compareTo(confirmAmount) < 0){
throw new JeroBootException("待确收金额不能小于确认收入金额");
}
//待确收金额不能小于开票金额
if (invoiceAmount != null && receivableAmount.compareTo(invoiceAmount) < 0){
throw new JeroBootException("待确收金额不能小于开票金额");
}
}
/** /**
* 税额是否正确 * 税额是否正确
* @param tax 税额 * @param tax 税额
@@ -1224,6 +1259,232 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
payPaymentCheckMapper.update(payPaymentRecordSub,updateWrapper); payPaymentCheckMapper.update(payPaymentRecordSub,updateWrapper);
} }
@Override
public void editReceivableAmount(EditReceivableAmountParam param) {
String projectId = param.getProjectId();
Integer projectType = param.getProjectType();
BigDecimal receivableAmount = param.getReceivableAmount();
boolean changeReceivableAmountFlag = true;
//到账金额
BigDecimal paidAmount;
//缴费凭证状态
String paymentStatus;
//确认收入金额
BigDecimal confirmAmount;
//开票金额
BigDecimal invoiceAmount;
//开票状态
Integer needInvoice;
int makeInvoice;
//确认收入状态
Integer affirmIncome;
Integer inAccount;
//税率
BigDecimal taxRate;
//税额
BigDecimal tax;
//未税金额
BigDecimal noTaxAmount;
//税额是否正确
switch (String.valueOf(projectType)) {
// 普通项目
case PayIncomeContractCommon.PROJECT_TYPE1:
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(projectId);
//获取到账、确收、开票金额
paidAmount = payCommonProject.getPaidAmount();
confirmAmount = payCommonProject.getConfirmAmount();
invoiceAmount = payCommonProject.getInvoiceAmount();
//判断能否修改待确收金额
editReceivableAmountFlag(receivableAmount, paidAmount, confirmAmount, invoiceAmount);
//开票状态
needInvoice = payCommonProject.getNeedInvoice();
makeInvoice = mailBillService.getMakeInvoice(receivableAmount, needInvoice, invoiceAmount);
payCommonProject.setMakeInvoice(makeInvoice);
//保存新的税额、未税金额
taxRate = payCommonProject.getTaxRate();
noTaxAmount = receivableAmount.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
payCommonProject.setNoTaxAmount(noTaxAmount);
payCommonProject.setTax(receivableAmount.subtract(noTaxAmount));
//到账状态
inAccount = getInAccount(receivableAmount, paidAmount);
paymentStatus = payCommonProject.getPaymentStatus();
paymentStatus = payPaymentCheckService.getPaymentStatus(receivableAmount, paidAmount, paymentStatus, changeReceivableAmountFlag);//缴费状态
payCommonProject.setPaymentStatus(paymentStatus);
payCommonProject.setInAccount(inAccount);
//确认收入状态
affirmIncome = confirmPaymentRecordService.getAffirmIncome(receivableAmount, confirmAmount);
payCommonProject.setAffirmIncome(affirmIncome);
//更新
payCommonProject.setReceivableAmount(receivableAmount);
payCommonProjectMapper.updateById(payCommonProject);
break;
// 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(projectId);
//获取到账、确收、开票金额
paidAmount = payWorking.getPaidAmount();
confirmAmount = payWorking.getConfirmAmount();
invoiceAmount = payWorking.getInvoiceAmount();
//判断能否修改待确收金额
editReceivableAmountFlag(receivableAmount, paidAmount, confirmAmount, invoiceAmount);
//开票状态
needInvoice = payWorking.getNeedInvoice();
makeInvoice = mailBillService.getMakeInvoice(receivableAmount, needInvoice, invoiceAmount);
payWorking.setMakeInvoice(makeInvoice);
//保存新的税额、未税金额
taxRate = payWorking.getTaxRate();
noTaxAmount = receivableAmount.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
payWorking.setNoTaxAmount(noTaxAmount);
payWorking.setTax(receivableAmount.subtract(noTaxAmount));
//到账状态
inAccount = getInAccount(receivableAmount, paidAmount);
paymentStatus = payWorking.getPaymentStatus();
paymentStatus = payPaymentCheckService.getPaymentStatus(receivableAmount, paidAmount, paymentStatus, changeReceivableAmountFlag);//缴费状态
payWorking.setPaymentStatus(paymentStatus);
payWorking.setInAccount(inAccount);
//确认收入状态
affirmIncome = confirmPaymentRecordService.getAffirmIncome(receivableAmount, confirmAmount);
payWorking.setAffirmIncome(affirmIncome);
//更新
payWorking.setReceivableAmount(receivableAmount);
payWorkingGroupSubItemMapper.updateById(payWorking);
break;
//会议项目
case PayIncomeContractCommon.PROJECT_TYPE3:
PayMeetingSituation meetingSituation = payMeetingSituationMapper.selectById(projectId);
//获取到账、确收、开票金额
paidAmount = meetingSituation.getPaidAmount();
confirmAmount = meetingSituation.getConfirmAmount();
invoiceAmount = meetingSituation.getInvoiceAmount();
//判断能否修改待确收金额
editReceivableAmountFlag(receivableAmount, paidAmount, confirmAmount, invoiceAmount);
//开票状态
needInvoice = meetingSituation.getNeedInvoice();
makeInvoice = mailBillService.getMakeInvoice(receivableAmount, needInvoice, invoiceAmount);
meetingSituation.setMakeInvoice(makeInvoice);
//保存新的税额、未税金额
taxRate = meetingSituation.getTaxRate();
noTaxAmount = receivableAmount.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
meetingSituation.setNoTaxAmount(noTaxAmount);
meetingSituation.setTax(receivableAmount.subtract(noTaxAmount));
//到账状态
inAccount = getInAccount(receivableAmount, paidAmount);
paymentStatus = meetingSituation.getPaymentStatus();
paymentStatus = payPaymentCheckService.getPaymentStatus(receivableAmount, paidAmount, paymentStatus, changeReceivableAmountFlag);//缴费状态
meetingSituation.setPaymentStatus(paymentStatus);
meetingSituation.setInAccount(inAccount);
//确认收入状态
affirmIncome = confirmPaymentRecordService.getAffirmIncome(receivableAmount, confirmAmount);
meetingSituation.setAffirmIncome(affirmIncome);
//更新
meetingSituation.setAmountReceivable(receivableAmount);
payMeetingSituationMapper.updateById(meetingSituation);
break;
//会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(projectId);
//获取到账、确收、开票金额
paidAmount = member.getPaidAmount();
confirmAmount = member.getConfirmAmount();
invoiceAmount = member.getInvoiceAmount();
//判断能否修改待确收金额
editReceivableAmountFlag(receivableAmount, paidAmount, confirmAmount, invoiceAmount);
//开票状态
needInvoice = member.getNeedInvoice();
makeInvoice = mailBillService.getMakeInvoice(receivableAmount, needInvoice, invoiceAmount);
member.setMakeInvoice(makeInvoice);
//保存新的税额、未税金额
taxRate = member.getTaxRate();
noTaxAmount = receivableAmount.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
member.setNoTaxAmount(noTaxAmount);
member.setTax(receivableAmount.subtract(noTaxAmount));
//到账状态
inAccount = getInAccount(receivableAmount, paidAmount);
paymentStatus = member.getPaymentStatus();
paymentStatus = payPaymentCheckService.getPaymentStatus(receivableAmount, paidAmount, paymentStatus, changeReceivableAmountFlag);//缴费状态
member.setPaymentStatus(paymentStatus);
member.setInAccount(inAccount);
//确认收入状态
affirmIncome = confirmPaymentRecordService.getAffirmIncome(receivableAmount, confirmAmount);
member.setAffirmIncome(affirmIncome);
//更新
member.setAmountReceivable(receivableAmount);
payMemberProjectSubitemMapper.updateById(member);
break;
//标协会员
case PayIncomeContractCommon.PROJECT_TYPE5:
TbMemberProjectSubitem projectSubitem = tbMemberProjectSubitemMapper.selectById(projectId);
//获取到账、确收、开票金额
paidAmount = projectSubitem.getPaidAmount();
confirmAmount = projectSubitem.getConfirmAmount();
invoiceAmount = projectSubitem.getInvoiceAmount();
//判断能否修改待确收金额
editReceivableAmountFlag(receivableAmount, paidAmount, confirmAmount, invoiceAmount);
//开票状态
needInvoice = projectSubitem.getInvoiceRequirements();
makeInvoice = mailBillService.getMakeInvoice(receivableAmount, needInvoice, invoiceAmount);
projectSubitem.setMakeInvoice(makeInvoice);
//保存新的税额、未税金额
taxRate = projectSubitem.getTaxRate();
noTaxAmount = receivableAmount.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
projectSubitem.setNoTaxAmount(noTaxAmount);
projectSubitem.setTax(receivableAmount.subtract(noTaxAmount));
//到账状态
inAccount = getInAccount(receivableAmount, paidAmount);
paymentStatus = projectSubitem.getPaymentStatus();
paymentStatus = payPaymentCheckService.getPaymentStatus(receivableAmount, paidAmount, paymentStatus, changeReceivableAmountFlag);//缴费状态
projectSubitem.setPaymentStatus(paymentStatus);
projectSubitem.setInAccount(inAccount);
//确认收入状态
affirmIncome = confirmPaymentRecordService.getAffirmIncome(receivableAmount, confirmAmount);
projectSubitem.setAffirmIncome(affirmIncome);
//更新
projectSubitem.setAmountReceivable(receivableAmount);
tbMemberProjectSubitemMapper.updateById(projectSubitem);
break;
//标协证书
case PayIncomeContractCommon.PROJECT_TYPE6:
throw new JeroBootException("标协证书类型不可编辑!");
// 打包项目
case PayIncomeContractCommon.PROJECT_TYPE8:
PayPackCompany payPackCompany = payPackCompanyService.getById(projectId);
//获取到账、确收、开票金额
paidAmount = payPackCompany.getPaidAmount();
confirmAmount = payPackCompany.getConfirmAmount();
invoiceAmount = payPackCompany.getInvoiceAmount();
//判断能否修改待确收金额
editReceivableAmountFlag(receivableAmount, paidAmount, confirmAmount, invoiceAmount);
//开票状态
needInvoice = payPackCompany.getNeedInvoice();
makeInvoice = mailBillService.getMakeInvoice(receivableAmount, needInvoice, invoiceAmount);
payPackCompany.setMakeInvoice(makeInvoice);
//保存新的税额、未税金额
taxRate = payPackCompany.getTaxRate();
noTaxAmount = receivableAmount.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
payPackCompany.setNoTaxAmount(noTaxAmount);
payPackCompany.setTax(receivableAmount.subtract(noTaxAmount));
//到账状态
inAccount = getInAccount(receivableAmount, paidAmount);
//paymentStatus = payPaymentCheckService.getPaymentStatus(receivableAmount, paidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态
//payPackCompany.set(paymentStatus);
payPackCompany.setInAccount(inAccount);
//确认收入状态
affirmIncome = confirmPaymentRecordService.getAffirmIncome(receivableAmount, confirmAmount);
payPackCompany.setIncomeAffirm(affirmIncome);
//更新
payPackCompany.setReceivableAmount(receivableAmount);
payPackCompanyService.updateById(payPackCompany);
break;
default:
break;
}
}
/** /**
* 标协会员项目来款推送到标协项目 * 标协会员项目来款推送到标协项目
* @param typr5List * @param typr5List
@@ -1332,7 +1593,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =subtract(payCommonProject.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 newPaidAmount =subtract(payCommonProject.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(payCommonProject.getReceivableAmount(), newPaidAmount);//到账状态 inAccount = getInAccount(payCommonProject.getReceivableAmount(), newPaidAmount);//到账状态
paymentStatus = payPaymentCheckService.getPaymentStatus(payCommonProject.getReceivableAmount(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 paymentStatus = payPaymentCheckService.getPaymentStatus(payCommonProject.getReceivableAmount(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode(), false);//缴费状态
tax = subtract(payCommonProject.getPaidTax(),payPaymentRecord.getTax()); tax = subtract(payCommonProject.getPaidTax(),payPaymentRecord.getTax());
noTaxAmount = subtract(payCommonProject.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); noTaxAmount = subtract(payCommonProject.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
payCommonProject.setPaidTax(tax); payCommonProject.setPaidTax(tax);
@@ -1352,7 +1613,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =subtract(payWorking.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 newPaidAmount =subtract(payWorking.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(payWorking.getReceivableAmount(), newPaidAmount);//到账状态 inAccount = getInAccount(payWorking.getReceivableAmount(), newPaidAmount);//到账状态
paymentStatus = payPaymentCheckService.getPaymentStatus(payWorking.getReceivableAmount(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 paymentStatus = payPaymentCheckService.getPaymentStatus(payWorking.getReceivableAmount(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode(), false);//缴费状态
tax = subtract(payWorking.getPaidTax(),payPaymentRecord.getTax()); tax = subtract(payWorking.getPaidTax(),payPaymentRecord.getTax());
noTaxAmount = subtract(payWorking.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); noTaxAmount = subtract(payWorking.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
payWorking.setPaidTax(tax); payWorking.setPaidTax(tax);
@@ -1371,7 +1632,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =subtract(meeting.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 newPaidAmount =subtract(meeting.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(meeting.getAmountReceivable(), newPaidAmount);//到账状态 inAccount = getInAccount(meeting.getAmountReceivable(), newPaidAmount);//到账状态
paymentStatus = payPaymentCheckService.getPaymentStatus(meeting.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 paymentStatus = payPaymentCheckService.getPaymentStatus(meeting.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode(), false);//缴费状态
tax = subtract(meeting.getPaidTax(),payPaymentRecord.getTax()); tax = subtract(meeting.getPaidTax(),payPaymentRecord.getTax());
noTaxAmount = subtract(meeting.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); noTaxAmount = subtract(meeting.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
meeting.setPaidTax(tax); meeting.setPaidTax(tax);
@@ -1391,7 +1652,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =subtract(member.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 newPaidAmount =subtract(member.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(member.getAmountReceivable(), newPaidAmount);//到账状态 inAccount = getInAccount(member.getAmountReceivable(), newPaidAmount);//到账状态
paymentStatus = payPaymentCheckService.getPaymentStatus(member.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 paymentStatus = payPaymentCheckService.getPaymentStatus(member.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode(), false);//缴费状态
tax = subtract(member.getPaidTax(),payPaymentRecord.getTax()); tax = subtract(member.getPaidTax(),payPaymentRecord.getTax());
noTaxAmount = subtract(member.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); noTaxAmount = subtract(member.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
member.setPaidTax(tax); member.setPaidTax(tax);
@@ -1410,7 +1671,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =subtract(projectSubitem.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收 newPaidAmount =subtract(projectSubitem.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
inAccount = getInAccount(projectSubitem.getAmountReceivable(), newPaidAmount);//到账状态 inAccount = getInAccount(projectSubitem.getAmountReceivable(), newPaidAmount);//到账状态
paymentStatus = payPaymentCheckService.getPaymentStatus(projectSubitem.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态 paymentStatus = payPaymentCheckService.getPaymentStatus(projectSubitem.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode(), false);//缴费状态
tax = subtract(projectSubitem.getPaidTax(),payPaymentRecord.getTax()); tax = subtract(projectSubitem.getPaidTax(),payPaymentRecord.getTax());
noTaxAmount = subtract(projectSubitem.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount()); noTaxAmount = subtract(projectSubitem.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
projectSubitem.setPaidTax(tax); projectSubitem.setPaidTax(tax);
@@ -1462,7 +1723,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
||PayIncomeContractCommon.PROJECT_TYPE2.equals(projectType) ||PayIncomeContractCommon.PROJECT_TYPE2.equals(projectType)
||PayIncomeContractCommon.PROJECT_TYPE4.equals(projectType)){ ||PayIncomeContractCommon.PROJECT_TYPE4.equals(projectType)){
// 邮寄联系人 // 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(mailContactsId); PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(mailContactsId, null);
if(Objects.isNull(mailContactsName)){ if(Objects.isNull(mailContactsName)){
throw new JeroBootException("邮寄联系人名称为空!"); throw new JeroBootException("邮寄联系人名称为空!");
} }
@@ -0,0 +1,32 @@
package com.jero.payment.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* @author liJiaRao
* @date 2024-07-18 10:33
*/
@Data
public class EditReceivableAmountParam {
/**项目id*/
@ApiModelProperty(value = "项目id")
@NotBlank(message = "项目id不能为空")
private String projectId;
/**项目类型*/
@ApiModelProperty(value = "项目类型")
@NotNull(message = "项目类型不能为空")
private Integer projectType;
/**邮寄联系人id*/
@ApiModelProperty(value = "待确收金额")
@NotNull(message = "待确收金额不能为空")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal receivableAmount;
}
@@ -153,4 +153,21 @@ public class PayProjectCommon {
* 确认收入((1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))) * 确认收入((1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志)))
*/ */
public static Integer AFFIRM_INCOME0 = 0; public static Integer AFFIRM_INCOME0 = 0;
/**
* 1 已审核
*/
public static Integer IS_CHECK_PAY_MENT = 1;
/**
* 0 未审核
*/
public static Integer NOT_CHECK_PAY_MENT = 0;
/**
* 1 确认凭证
*/
public static Integer IS_CONFIRM_VOUCHER = 1;
/**
* 0 未确认凭证
*/
public static Integer NOT_CONFIRM_VOUCHER = 0;
} }
@@ -0,0 +1,120 @@
package com.jero.project.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.IdsMapBody;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.service.AnnualDataLockingService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
* 年度数据锁定表(pay_annual_data_locking)表控制层
*
* @author xxxxx
*/
@Slf4j
@Api(tags = "年度数据锁定表")
@RestController
@RequestMapping("sys/annualDataLocking")
public class AnnualDataLockingController extends JeroController<AnnualDataLocking, AnnualDataLockingService> {
/**
* 服务对象
*/
@Resource
private AnnualDataLockingService annualDataLockingService;
/**
* 分页列表查询
*/
@RequiresPermissions("annualDataLockingList:search")
@ApiOperation(value = "年度数据锁定表-分页列表查询", notes = "年度数据锁定表-分页列表查询")
@GetMapping(value = "/page")
public Result<IPage<AnnualDataLocking>> queryPageList(AnnualDataLocking annualDataLocking,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<AnnualDataLocking> queryWrapper = QueryGenerator.initQueryWrapper(annualDataLocking, req.getParameterMap());
Page<AnnualDataLocking> page = new Page<>(pageNo, pageSize);
IPage<AnnualDataLocking> pageList = annualDataLockingService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*/
@RequiresPermissions("annualDataLockingList:search")
@ApiOperation(value = "年度数据锁定表-列表查询", notes = "年度数据锁定表-列表查询")
@GetMapping(value = "/list")
public Result<List<AnnualDataLocking>> queryList(AnnualDataLocking annualDataLocking,
HttpServletRequest req) {
QueryWrapper<AnnualDataLocking> queryWrapper = QueryGenerator.initQueryWrapper(annualDataLocking, req.getParameterMap());
List<AnnualDataLocking> list = annualDataLockingService.list(queryWrapper);
return Result.OK(list);
}
/**
* 添加
*/
@RequiresPermissions("annualDataLockingList:add")
@AutoLog(value = "年度数据锁定表-添加")
@ApiOperation(value = "年度数据锁定表-添加", notes = "年度数据锁定表-添加")
@PostMapping(value = "/add")
public Result<String> add(@Validated @RequestBody AnnualDataLocking annualDataLocking) {
annualDataLockingService.add(annualDataLocking);
return Result.OK(Result.ADD_SUCCESS);
}
/**
* 通过id删除
*/
@RequiresPermissions("annualDataLockingList:delete")
@AutoLog(value = "年度数据锁定表-通过id删除")
@ApiOperation(value = "年度数据锁定表-通过id删除", notes = "年度数据锁定表-通过id删除")
@PostMapping(value = "/delete")
public Result<Object> delete(@RequestBody IdsMapBody map) {
String id = map.getId();
if (StringUtils.isBlank(id)) {
return Result.error(Result.NULL_ID);
}
annualDataLockingService.deleteById(id);
return Result.OK(Result.DELETE_SUCCESS);
}
/**
* 批量删除
*/
@RequiresPermissions("annualDataLockingList:batchDel")
@AutoLog(value = "年度数据锁定表-批量删除")
@ApiOperation(value = "年度数据锁定表-批量删除", notes = "年度数据锁定表-批量删除")
@PostMapping(value = "/deleteBatch")
public Result<Object> deleteBatch(@RequestBody IdsMapBody map) {
String ids = map.getIds();
if (StringUtils.isBlank(ids)) {
return Result.error(Result.NULL_ID);
}
List<String> idList = Arrays.asList(map.getIds().split(","));
this.annualDataLockingService.deleteByIds(idList);
return Result.OK(Result.DELETE_SUCCESS);
}
}
@@ -71,6 +71,9 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -154,6 +157,17 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
if(!StringUtils.isBlank(payCommonProject.getContactsTemporaryName())){ if(!StringUtils.isBlank(payCommonProject.getContactsTemporaryName())){
payCommonProject.setContactsTemporaryName(oConvertUtils.replaceAllPercent(payCommonProject.getContactsTemporaryName())); payCommonProject.setContactsTemporaryName(oConvertUtils.replaceAllPercent(payCommonProject.getContactsTemporaryName()));
} }
// 处理预计到账开始日期,拼接 -01
if (StringUtils.isNotBlank(payCommonProject.getEstimatedArrivalStartDate())) {
String startDate = payCommonProject.getEstimatedArrivalStartDate() + "-01";
payCommonProject.setEstimatedArrivalStartDate(startDate);
}
// 处理预计到账结束日期,计算该月最后一天
if (StringUtils.isNotBlank(payCommonProject.getEstimatedArrivalEndDate())) {
YearMonth yearMonth = YearMonth.parse(payCommonProject.getEstimatedArrivalEndDate(), DateTimeFormatter.ofPattern("yyyy-MM"));
LocalDate endDate = yearMonth.atEndOfMonth();
payCommonProject.setEstimatedArrivalEndDate(endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!rolePermissionService.getRolePermission("generalProject:search")){ if(!rolePermissionService.getRolePermission("generalProject:search")){
@@ -171,6 +185,12 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
if(Objects.isNull(p.getPaidAmount())){ if(Objects.isNull(p.getPaidAmount())){
p.setPaidAmount(new BigDecimal("0.00")); p.setPaidAmount(new BigDecimal("0.00"));
} }
// 处理 预估到账日期 字段 ,变为yyyy-MM格式
if(StringUtils.isNotBlank(p.getEstimatedArrivalDate())){
String estimatedArrivalDate = p.getEstimatedArrivalDate();
String formattedDate = estimatedArrivalDate.substring(0, 7); // 截取字符串的前7个字符 "yyyy-MM"
p.setEstimatedArrivalDate(formattedDate);
}
}); });
pageList.setRecords(list); pageList.setRecords(list);
} }
@@ -392,9 +412,11 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
@ApiOperation(value="普通项目管理-添加", notes="普通项目管理-添加") @ApiOperation(value="普通项目管理-添加", notes="普通项目管理-添加")
@PostMapping(value = "/add") @PostMapping(value = "/add")
public Result<?> add(@RequestBody PayCommonProject payCommonProject) { public Result<?> add(@RequestBody PayCommonProject payCommonProject) {
if (Objects.isNull(payCommonProject.getEstimatedArrivalDate())) { if (StringUtils.isBlank(payCommonProject.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空"); return Result.error("预估到账日期不能为空");
} }
// 给预估到账日期字段 yyyy-MM 拼接 -01 以便正确入库
payCommonProject.setEstimatedArrivalDate(payCommonProject.getEstimatedArrivalDate() + "-01");
StringBuilder msg = ValidUtil.validateAll(payCommonProject); StringBuilder msg = ValidUtil.validateAll(payCommonProject);
if(!StringUtils.isBlank(msg)){ if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString()); return Result.error(msg.toString());
@@ -417,6 +439,8 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
if (Objects.isNull(payCommonProject.getEstimatedArrivalDate())) { if (Objects.isNull(payCommonProject.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空"); return Result.error("预估到账日期不能为空");
} }
// 给预估到账日期字段 yyyy-MM 拼接 -01 以便正确入库
payCommonProject.setEstimatedArrivalDate(payCommonProject.getEstimatedArrivalDate() + "-01");
StringBuilder msg = ValidUtil.validateAll(payCommonProject); StringBuilder msg = ValidUtil.validateAll(payCommonProject);
if(!StringUtils.isBlank(msg)){ if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString()); return Result.error(msg.toString());
@@ -17,10 +17,11 @@ import com.jero.common.util.oConvertUtils;
import com.jero.contract.entity.PayIncomeContract; import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.service.IPayIncomeContractService; import com.jero.contract.service.IPayIncomeContractService;
import com.jero.mail.commont.constant; import com.jero.mail.commont.constant;
import com.jero.meeting.entity.PayMeetingQuestion;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItem; import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.project.vo.PayWorkingGroupPayment; import com.jero.project.vo.PayWorkingGroupPayment;
@@ -34,15 +35,11 @@ import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -64,7 +61,8 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
private IPayIncomeContractService payIncomeContractService; private IPayIncomeContractService payIncomeContractService;
@Resource @Resource
private RolePermissionService rolePermissionService; private RolePermissionService rolePermissionService;
@Resource
private AnnualDataLockingService annualDataLockingService;
/** /**
* 分页列表查询 * 分页列表查询
* *
@@ -300,6 +298,9 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
log.info("工作组项目-添加异常",e); log.info("工作组项目-添加异常",e);
return Result.error("工作组项目已存在!"); return Result.error("工作组项目已存在!");
} }
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
payWorkingGroupService.setPayWorkingGroup(payWorkingGroup); payWorkingGroupService.setPayWorkingGroup(payWorkingGroup);
payWorkingGroupService.save(payWorkingGroup); payWorkingGroupService.save(payWorkingGroup);
return Result.OK("添加成功!"); return Result.OK("添加成功!");
@@ -323,10 +324,17 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
if(StringUtils.isEmpty(payWorkingGroup.getId())){ if(StringUtils.isEmpty(payWorkingGroup.getId())){
return Result.error("工作组id不能为空!"); return Result.error("工作组id不能为空!");
} }
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
PayWorkingGroup payWorkingGroupOld = payWorkingGroupService.getById(payWorkingGroup.getId()); PayWorkingGroup payWorkingGroupOld = payWorkingGroupService.getById(payWorkingGroup.getId());
if(Objects.isNull(payWorkingGroupOld)){ if(Objects.isNull(payWorkingGroupOld)){
return Result.error(payWorkingGroupOld.getWorkingGroupProject() + "工作组不存在!"); return Result.error(payWorkingGroupOld.getWorkingGroupProject() + "工作组不存在!");
} }
String oldYear = payWorkingGroupOld.getYear();
//判断用户是否能操作所选年份数据
annualDataLockingService.judgeUserYear(oldYear);
// 工作组下有子项目的时候不能编辑是否收费字段 // 工作组下有子项目的时候不能编辑是否收费字段
// 根据id找到原始数据,判断是否收费字段是否变动,如果变动则提示不可修改 // 根据id找到原始数据,判断是否收费字段是否变动,如果变动则提示不可修改
if(!Objects.equals(payWorkingGroupOld.getPayFlag(),payWorkingGroup.getPayFlag())){ if(!Objects.equals(payWorkingGroupOld.getPayFlag(),payWorkingGroup.getPayFlag())){
@@ -379,6 +387,7 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
updatePayWorkingGroup.set(PayWorkingGroup::getMissionAndObjectives,payWorkingGroup.getMissionAndObjectives()); updatePayWorkingGroup.set(PayWorkingGroup::getMissionAndObjectives,payWorkingGroup.getMissionAndObjectives());
updatePayWorkingGroup.set(PayWorkingGroup::getRemarks,payWorkingGroup.getRemarks()); updatePayWorkingGroup.set(PayWorkingGroup::getRemarks,payWorkingGroup.getRemarks());
updatePayWorkingGroup.set(PayWorkingGroup::getPayFlag,payWorkingGroup.getPayFlag()); updatePayWorkingGroup.set(PayWorkingGroup::getPayFlag,payWorkingGroup.getPayFlag());
updatePayWorkingGroup.set(PayWorkingGroup::getSortNo,payWorkingGroup.getSortNo());
payWorkingGroupService.update(updatePayWorkingGroup); payWorkingGroupService.update(updatePayWorkingGroup);
return Result.OK("编辑成功!"); return Result.OK("编辑成功!");
} }
@@ -465,4 +474,16 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
return super.importExcel(request, response, PayWorkingGroup.class); return super.importExcel(request, response, PayWorkingGroup.class);
} }
/**
* 全部文件导出
* @param request
* @param response
*/
@RequiresPermissions("workingGroupProject:exportAllFile")
@ApiOperation(value="全部文件导出", notes="全部文件导出")
@GetMapping(value = "/exportAllFile")
public void exportAllFile(HttpServletRequest request, HttpServletResponse response, PayWorkingGroup payWorkingGroup) {
payWorkingGroupService.exportAllFile(request, response, payWorkingGroup);
}
} }
@@ -33,9 +33,11 @@ import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.pack.service.IPayPackCompanyService; import com.jero.pack.service.IPayPackCompanyService;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItem; import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.entity.PayWorkingGroupSubItemContacts; import com.jero.project.entity.PayWorkingGroupSubItemContacts;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemContactsService; import com.jero.project.service.IPayWorkingGroupSubItemContactsService;
import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.project.service.IPayWorkingGroupSubItemService;
@@ -59,6 +61,10 @@ import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -100,6 +106,8 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
private ISysUserService sysUserService; private ISysUserService sysUserService;
@Resource @Resource
private IPayWorkingGroupSubItemContactsService payWorkingGroupSubItemContactsService; private IPayWorkingGroupSubItemContactsService payWorkingGroupSubItemContactsService;
@Resource
private AnnualDataLockingService annualDataLockingService;
/** /**
* 分页列表查询 * 分页列表查询
@@ -130,6 +138,17 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
if(Objects.isNull(payWorkingGroup)){ if(Objects.isNull(payWorkingGroup)){
return Result.error("工作组不存在!"); return Result.error("工作组不存在!");
} }
// 处理预计到账开始日期,拼接 -01
if (StringUtils.isNotBlank(payWorkingGroupSubItem.getEstimatedArrivalStartDate())) {
String startDate = payWorkingGroupSubItem.getEstimatedArrivalStartDate() + "-01";
payWorkingGroupSubItem.setEstimatedArrivalStartDate(startDate);
}
// 处理预计到账结束日期,计算该月最后一天
if (StringUtils.isNotBlank(payWorkingGroupSubItem.getEstimatedArrivalEndDate())) {
YearMonth yearMonth = YearMonth.parse(payWorkingGroupSubItem.getEstimatedArrivalEndDate(), DateTimeFormatter.ofPattern("yyyy-MM"));
LocalDate endDate = yearMonth.atEndOfMonth();
payWorkingGroupSubItem.setEstimatedArrivalEndDate(endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!rolePermissionService.getRolePermission("workingGroupMember:search") if(!rolePermissionService.getRolePermission("workingGroupMember:search")
&& !Objects.equals(payWorkingGroup.getPrincipalIdA(),sysUser.getId()) && !Objects.equals(payWorkingGroup.getPrincipalIdA(),sysUser.getId())
@@ -147,6 +166,12 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
if(Objects.isNull(p.getPaidAmount())){ if(Objects.isNull(p.getPaidAmount())){
p.setPaidAmount(new BigDecimal("0.00")); p.setPaidAmount(new BigDecimal("0.00"));
} }
// 处理 预估到账日期 字段 ,变为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); return Result.OK(pageList);
@@ -406,6 +431,9 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
@ApiOperation(value = "工作组成员-添加", notes = "工作组成员-添加") @ApiOperation(value = "工作组成员-添加", notes = "工作组成员-添加")
@PostMapping(value = "/add") @PostMapping(value = "/add")
public Result<?> add(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) { public Result<?> add(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) {
if (!StringUtils.isBlank(payWorkingGroupSubItem.getEstimatedArrivalDate())) {
payWorkingGroupSubItem.setEstimatedArrivalDate(payWorkingGroupSubItem.getEstimatedArrivalDate() + "-01");
}
// 找到工作组 看是否收费,如果不收费则填入默认字段 // 找到工作组 看是否收费,如果不收费则填入默认字段
payWorkingGroupService.validAndSetDefaultValue(payWorkingGroupSubItem); payWorkingGroupService.validAndSetDefaultValue(payWorkingGroupSubItem);
StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem); StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem);
@@ -432,9 +460,29 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
if (StringUtils.isBlank(workingGroupIds)) { if (StringUtils.isBlank(workingGroupIds)) {
return Result.error("工作组ids不能为空!"); return Result.error("工作组ids不能为空!");
} }
if (!StringUtils.isBlank(payWorkingGroupSubItem.getEstimatedArrivalDate())) {
payWorkingGroupSubItem.setEstimatedArrivalDate(payWorkingGroupSubItem.getEstimatedArrivalDate() + "-01");
}
String[] workingGroupIdsArr = workingGroupIds.split(","); String[] workingGroupIdsArr = workingGroupIds.split(",");
List<String> errInfoList = new ArrayList<>(); List<String> errInfoList = new ArrayList<>();
for (String workingGroupId : workingGroupIdsArr) { for (String workingGroupId : workingGroupIdsArr) {
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(workingGroupId);
BigDecimal yearChargeA = payWorkingGroup.getYearChargeA();
BigDecimal taxRate = new BigDecimal("0.06");
payWorkingGroupSubItem.setTaxRate(taxRate);
if (Objects.isNull(yearChargeA)) {
payWorkingGroupSubItem.setReceivableAmount(BigDecimal.ZERO);
payWorkingGroupSubItem.setTax(BigDecimal.ZERO);
payWorkingGroupSubItem.setNoTaxAmount(BigDecimal.ZERO);
} else {
payWorkingGroupSubItem.setReceivableAmount(yearChargeA);
// 计算未税金额
BigDecimal noTaxAmount = yearChargeA.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
// 计算税额
BigDecimal tax = yearChargeA.subtract(noTaxAmount).setScale(2, RoundingMode.HALF_UP);
payWorkingGroupSubItem.setTax(tax);
payWorkingGroupSubItem.setNoTaxAmount(noTaxAmount);
}
payWorkingGroupSubItem.setId(null); payWorkingGroupSubItem.setId(null);
List<PayWorkingGroupSubItemContacts> payWorkingGroupSubItemContactsList = List<PayWorkingGroupSubItemContacts> payWorkingGroupSubItemContactsList =
payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList(); payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList();
@@ -472,6 +520,9 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
@ApiOperation(value = "工作组成员-编辑", notes = "工作组成员-编辑") @ApiOperation(value = "工作组成员-编辑", notes = "工作组成员-编辑")
@PostMapping(value = "/edit") @PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) { public Result<?> edit(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) {
if (!StringUtils.isBlank(payWorkingGroupSubItem.getEstimatedArrivalDate())) {
payWorkingGroupSubItem.setEstimatedArrivalDate(payWorkingGroupSubItem.getEstimatedArrivalDate() + "-01");
}
StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem); StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem);
if (!StringUtils.isBlank(msg)) { if (!StringUtils.isBlank(msg)) {
return Result.error(msg.toString()); return Result.error(msg.toString());
@@ -716,6 +767,17 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
&& !Objects.equals(payWorkingGroup.getPrincipalIdB(),sysUser.getId())){ && !Objects.equals(payWorkingGroup.getPrincipalIdB(),sysUser.getId())){
throw new JeroBootException("数据权限不足!"); throw new JeroBootException("数据权限不足!");
} }
// 处理预计到账开始日期,拼接 -01
if (StringUtils.isNotBlank(payWorkingGroupSubItem.getEstimatedArrivalStartDate())) {
String startDate = payWorkingGroupSubItem.getEstimatedArrivalStartDate() + "-01";
payWorkingGroupSubItem.setEstimatedArrivalStartDate(startDate);
}
// 处理预计到账结束日期,计算该月最后一天
if (StringUtils.isNotBlank(payWorkingGroupSubItem.getEstimatedArrivalEndDate())) {
YearMonth yearMonth = YearMonth.parse(payWorkingGroupSubItem.getEstimatedArrivalEndDate(), DateTimeFormatter.ofPattern("yyyy-MM"));
LocalDate endDate = yearMonth.atEndOfMonth();
payWorkingGroupSubItem.setEstimatedArrivalEndDate(endDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
// Step.1 组装查询条件 // Step.1 组装查询条件
//QueryWrapper<PayWorkingGroupSubItem> queryWrapper = QueryGenerator.initQueryWrapper(payWorkingGroupSubItem, request.getParameterMap()); //QueryWrapper<PayWorkingGroupSubItem> queryWrapper = QueryGenerator.initQueryWrapper(payWorkingGroupSubItem, request.getParameterMap());
@@ -746,6 +808,11 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
if(Objects.isNull(workingGroupSubItem.getPaidAmount())){ if(Objects.isNull(workingGroupSubItem.getPaidAmount())){
workingGroupSubItem.setPaidAmount(new BigDecimal("0.00")); workingGroupSubItem.setPaidAmount(new BigDecimal("0.00"));
} }
if(StringUtils.isNotBlank(workingGroupSubItem.getEstimatedArrivalDate())){
String estimatedArrivalDate = workingGroupSubItem.getEstimatedArrivalDate();
String formattedDate = estimatedArrivalDate.substring(0, 7);
workingGroupSubItem.setEstimatedArrivalDate(formattedDate);
}
PayWorkingGroupSubItemExcel excel = new PayWorkingGroupSubItemExcel(); PayWorkingGroupSubItemExcel excel = new PayWorkingGroupSubItemExcel();
BeanUtils.copyProperties(workingGroupSubItem,excel); BeanUtils.copyProperties(workingGroupSubItem,excel);
List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContacts = payWorkingGroupSubItemContactsList.stream().filter(o->Objects.equals(workingGroupSubItem.getId(),o.getWorkingGroupSubId())).collect(Collectors.toList()); List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContacts = payWorkingGroupSubItemContactsList.stream().filter(o->Objects.equals(workingGroupSubItem.getId(),o.getWorkingGroupSubId())).collect(Collectors.toList());
@@ -901,4 +968,18 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
payWorkingGroupSubItemService.deleteLabel(setLabelVO); payWorkingGroupSubItemService.deleteLabel(setLabelVO);
return Result.OK("设置标签成功!"); return Result.OK("设置标签成功!");
} }
/**
* 确认凭证
*
* @return
*/
@AutoLog(value = "确认凭证",operateType = 2)
@RequiresPermissions("workingGroupMember:confirmVoucher")
@GetMapping(value = "/confirmVoucher")
@ApiOperation(value = "工作组成员-确认凭证")
public Result<?> confirmVoucher(@RequestParam(name = "id") String id) {
payWorkingGroupSubItemService.confirmVoucher(id);
return Result.OK("确认凭证成功!");
}
} }
@@ -0,0 +1,62 @@
package com.jero.project.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.Data;
/**
*年度数据锁定表
*@author liJiaRao
*@date 2024-07-24 13:51
*/
@ApiModel(description="年度数据锁定表")
@Data
@TableName(value = "pay_annual_data_locking")
public class AnnualDataLocking {
/**
* 主键
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
@ApiModelProperty(value="主键")
private String id;
/**
* 年份
*/
@TableField(value = "`year`")
@ApiModelProperty(value="年份")
private String year;
/**
* 创建人
*/
@TableField(value = "create_by")
@ApiModelProperty(value="创建人")
private String createBy;
/**
* 创建时间
*/
@TableField(value = "create_time")
@ApiModelProperty(value="创建时间")
private Date createTime;
/**
* 更新人
*/
@TableField(value = "update_by")
@ApiModelProperty(value="更新人")
private String updateBy;
/**
* 更新时间
*/
@TableField(value = "update_time")
@ApiModelProperty(value="更新时间")
private Date updateTime;
}
@@ -378,4 +378,8 @@ public class PayCommonProject implements Serializable {
@ApiModelProperty(value = "权益状态") @ApiModelProperty(value = "权益状态")
@TableField(exist = false) @TableField(exist = false)
private String equityStatus; private String equityStatus;
@ApiModelProperty(value = "自定义排序顺序")
@TableField(exist = false)
private BigDecimal sortNo;
} }
@@ -20,10 +20,14 @@ public class PayWorkGroupSubletStatistics {
@ApiModelProperty(value = "来款单位") @ApiModelProperty(value = "来款单位")
private String chargeCompanyTemporaryName; private String chargeCompanyTemporaryName;
@Excel(name = "项目负责人", width = 15)
@ApiModelProperty(value = "项目负责人")
private String principalName;
@ApiModelProperty(value = "打包") @ApiModelProperty(value = "打包")
private Integer pack; private Integer pack;
@Excel(name = "打包", width = 15) @Excel(name = "是否打包", width = 15)
private String packText; private String packText;
@Excel(name = "年度待确收金额", width = 15) @Excel(name = "年度待确收金额", width = 15)
@@ -54,8 +58,5 @@ public class PayWorkGroupSubletStatistics {
@Excel(name = "项目负责人", width = 15)
@ApiModelProperty(value = "项目负责人")
private String principalName;
} }
@@ -160,4 +160,7 @@ public class PayWorkingGroup implements Serializable {
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "企业名称") @ApiModelProperty(value = "企业名称")
private String companyName; private String companyName;
@ApiModelProperty(value = "自定义排序顺序")
private BigDecimal sortNo;
} }
@@ -130,7 +130,7 @@ public class PayWorkingGroupSubItem implements Serializable {
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预估到账日期") @ApiModelProperty(value = "预估到账日期")
@Excel(name = "预估到账日期",width = 15,format = "yyyy-MM-dd") @Excel(name = "预估到账日期",width = 15,format = "yyyy-MM")
private String estimatedArrivalDate; private String estimatedArrivalDate;
/**实收金额(元)*/ /**实收金额(元)*/
@@ -614,4 +614,10 @@ public class PayWorkingGroupSubItem implements Serializable {
@ApiModelProperty(value = "工作组ids 多个以逗号分隔") @ApiModelProperty(value = "工作组ids 多个以逗号分隔")
@TableField(exist = false) @TableField(exist = false)
private String workingGroupIds; private String workingGroupIds;
@ApiModelProperty(value = "是否审核(1:是,0:否")
private Integer checkPaymentStatus;
@ApiModelProperty(value = "是否确认凭证(1:是,0:否")
private Integer confirmVoucher;
} }
@@ -52,4 +52,10 @@ public class PayWorkingGroupSubletSearch {
@ApiModelProperty(value = "是否打包") @ApiModelProperty(value = "是否打包")
private String pack; private String pack;
@ApiModelProperty(value = "字段")
private String column;
@ApiModelProperty(value = "排序规则")
private String order;
} }
@@ -0,0 +1,21 @@
package com.jero.project.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.project.entity.AnnualDataLocking;
import java.time.Year;
/**
*
*@author liJiaRao
*@date 2024-07-24 13:51
*/
public interface AnnualDataLockingMapper extends BaseMapper<AnnualDataLocking> {
AnnualDataLocking countByYear(@Param("year")String year);
List<String> getYear();
}
@@ -1,4 +1,7 @@
package com.jero.project.mapper; package com.jero.project.mapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -42,5 +45,11 @@ public interface PayCommonProjectMapper extends BaseMapper<PayCommonProject> {
*/ */
List<PayCommonProject> queryListByCompany(@Param(Constants.WRAPPER) QueryWrapper<PayCommonProject> queryWrapper, @Param("projectType") String projectType, @Param("pack") Integer pack, @Param("packYear") String packYear); List<PayCommonProject> queryListByCompany(@Param(Constants.WRAPPER) QueryWrapper<PayCommonProject> queryWrapper, @Param("projectType") String projectType, @Param("pack") Integer pack, @Param("packYear") String packYear);
default List<PayCommonProject> listByYear(String year) {
LambdaQueryWrapper<PayCommonProject> myQuery = Wrappers.lambdaQuery(PayCommonProject.class);
myQuery.eq(PayCommonProject::getYear, year);
return selectList(myQuery);
}
} }
@@ -275,4 +275,8 @@ public interface PayWorkingGroupMapper extends BaseMapper<PayWorkingGroup> {
List<DepartStatistics> overallDepartmentStatistics(@Param("year") String year, @Param("type") String type); List<DepartStatistics> overallDepartmentStatistics(@Param("year") String year, @Param("type") String type);
List<DepartStatistics> allDepartmentStatistics(@Param("year") String year, @Param("type") String type); List<DepartStatistics> allDepartmentStatistics(@Param("year") String year, @Param("type") String type);
List<CompanyComeMoneyClassificationList> queryPageListForCompanyClassification(@Param("companyComeMoneySearch") CompanyComeMoneySearch companyComeMoneySearch);
List<AllProjectStatistics> queryPageListExcelForProject(@Param("allProjectStatisticsSearch") AllProjectStatisticsSearch allProjectStatisticsSearch, @Param("idList") List<String> idList);
} }
@@ -1,5 +1,14 @@
package com.jero.project.mapper; package com.jero.project.mapper;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import java.util.ArrayList;
import java.util.Collection;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@@ -20,5 +29,14 @@ public interface PayWorkingGroupSubItemContactsMapper extends BaseMapper<PayWork
List<PayWorkingGroupSubItemContacts> getSubItemContacts(@Param("workingGroupSubId") String workingGroupSubId); List<PayWorkingGroupSubItemContacts> getSubItemContacts(@Param("workingGroupSubId") String workingGroupSubId);
default List<PayWorkingGroupSubItemContacts> listByWorkingGroupSubIdIn(Collection<String> workingGroupSubIdCollection) {
if (CollectionUtil.isEmpty(workingGroupSubIdCollection)){
return new ArrayList<>();
}
LambdaQueryWrapper<PayWorkingGroupSubItemContacts> myQuery = Wrappers.lambdaQuery(PayWorkingGroupSubItemContacts.class);
myQuery.in(PayWorkingGroupSubItemContacts::getWorkingGroupSubId, workingGroupSubIdCollection);
return selectList(myQuery);
}
} }
@@ -64,4 +64,6 @@ public interface PayWorkingGroupSubItemMapper extends BaseMapper<PayWorkingGroup
IPage<PayWorkingGroupSubItem> publishReminderList(Page<PayWorkingGroupSubItem> page, @Param("payWorkingGroupSubItem") PayWorkingGroupSubItem payWorkingGroupSubItem); IPage<PayWorkingGroupSubItem> publishReminderList(Page<PayWorkingGroupSubItem> page, @Param("payWorkingGroupSubItem") PayWorkingGroupSubItem payWorkingGroupSubItem);
List<PayWorkingGroupSubItem> queryList(@Param(Constants.WRAPPER) QueryWrapper<PayWorkingGroupSubItem> queryPayWorkingGroupSubItem); List<PayWorkingGroupSubItem> queryList(@Param(Constants.WRAPPER) QueryWrapper<PayWorkingGroupSubItem> queryPayWorkingGroupSubItem);
List<PayWorkingGroupSubItem> listByYear(@Param("year") String year);
} }
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.project.mapper.AnnualDataLockingMapper">
<resultMap id="BaseResultMap" type="com.jero.project.entity.AnnualDataLocking">
<!--@mbg.generated-->
<!--@Table pay_annual_data_locking-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="year" jdbcType="VARCHAR" property="year" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, `year`, create_by, create_time, update_by, update_time
</sql>
<!--auto generated by MybatisCodeHelper on 2024-07-24-->
<select id="countByYear" resultType="com.jero.project.entity.AnnualDataLocking">
select *
from pay_annual_data_locking
<where>
<if test="year != null and year != ''">
and `year`=#{year,jdbcType=VARCHAR}
</if>
</where>
</select>
<!--auto generated by MybatisCodeHelper on 2024-07-31-->
<select id="getYear" resultType="java.lang.String">
select `year`
from pay_annual_data_locking
</select>
</mapper>
@@ -11,7 +11,6 @@
su.realname as principal_name, su.realname as principal_name,
pcp.charge_company_id, pcp.charge_company_id,
pcp.charge_company_temporary_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( IF(
pcp.charge_company_temporary_name = pcp.charge_company_temporary_name =
IF( IF(
@@ -57,8 +56,7 @@
FROM pay_common_project pcp FROM pay_common_project pcp
left join sys_user su on pcp.principal_id = su.id 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_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 pcp.charge_company_id = pcm.id
left join pay_company_management pcm on pcmt.company_id = pcm.id
<where> <where>
<if test="payCommonProject.chargeProject != null and payCommonProject.chargeProject != ''"> <if test="payCommonProject.chargeProject != null and payCommonProject.chargeProject != ''">
AND pcp.charge_project like concat('%',concat(#{payCommonProject.chargeProject},'%')) AND pcp.charge_project like concat('%',concat(#{payCommonProject.chargeProject},'%'))
@@ -24,7 +24,8 @@
pwg.create_time AS createTime, pwg.create_time AS createTime,
pwg.update_by AS updateBy, pwg.update_by AS updateBy,
pwg.update_time AS updateTime, 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 FROM pay_working_group pwg
left join sys_user su on pwg.principal_id_a = su.id left join sys_user su on pwg.principal_id_a = su.id
left join sys_user su1 on pwg.principal_id_b = 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}, '%') and pwgs.charge_company_temporary_name like concat('%', #{payWorkingGroup.companyName}, '%')
</if> </if>
</where> </where>
ORDER BY pwg.create_time DESC ORDER BY
CASE WHEN pwg.sort_no IS NULL THEN 1 ELSE 0 END ASC,
pwg.sort_no ASC,
pwg.create_time DESC
</select> </select>
<select id="queryListByCompany" resultType="com.jero.project.vo.PayWorkingGroupVO"> <select id="queryListByCompany" resultType="com.jero.project.vo.PayWorkingGroupVO">
SELECT SELECT
@@ -1438,6 +1442,9 @@
<if test="principalPeopleDetailSearch.inAccountStatue != null and principalPeopleDetailSearch.inAccountStatue != ''"> <if test="principalPeopleDetailSearch.inAccountStatue != null and principalPeopleDetailSearch.inAccountStatue != ''">
AND payStatue = #{principalPeopleDetailSearch.inAccountStatue} AND payStatue = #{principalPeopleDetailSearch.inAccountStatue}
</if> </if>
<if test="principalPeopleDetailSearch.pack != null and principalPeopleDetailSearch.pack != ''">
AND pack = #{principalPeopleDetailSearch.pack}
</if>
<choose> <choose>
<when test="principalPeopleDetailSearch.allMoney != null and principalPeopleDetailSearch.allMoney != '' and principalPeopleDetailSearch.allMoneyTwo != null and principalPeopleDetailSearch.allMoneyTwo != ''"> <when test="principalPeopleDetailSearch.allMoney != null and principalPeopleDetailSearch.allMoney != '' and principalPeopleDetailSearch.allMoneyTwo != null and principalPeopleDetailSearch.allMoneyTwo != ''">
AND allMoney >= #{principalPeopleDetailSearch.allMoney} AND allMoney >= #{principalPeopleDetailSearch.allMoney}
@@ -1453,14 +1460,6 @@
</if> </if>
</otherwise> </otherwise>
</choose> </choose>
<!--<choose>
<when test="principalPeopleDetailSearch.paymentMonth != null and principalPeopleDetailSearch.paymentMonth != ''">
and confirmDate like concat('%',#{principalPeopleDetailSearch.paymentYear},'-',#{principalPeopleDetailSearch.paymentMonth},'%')
</when>
<when test="principalPeopleDetailSearch.paymentYear != null and principalPeopleDetailSearch.paymentYear != ''">
and confirmDate like concat('%',#{principalPeopleDetailSearch.paymentYear},'%')
</when>
</choose>-->
</where> </where>
<if test="principalPeopleDetailSearch.column != null and principalPeopleDetailSearch.column != ''"> <if test="principalPeopleDetailSearch.column != null and principalPeopleDetailSearch.column != ''">
<if test="principalPeopleDetailSearch.column == 'allMoney' and principalPeopleDetailSearch.order == 'desc'"> <if test="principalPeopleDetailSearch.column == 'allMoney' and principalPeopleDetailSearch.order == 'desc'">
@@ -1538,6 +1537,9 @@
<if test="principalPeopleDetailSearch.inAccountStatue != null and principalPeopleDetailSearch.inAccountStatue != ''"> <if test="principalPeopleDetailSearch.inAccountStatue != null and principalPeopleDetailSearch.inAccountStatue != ''">
AND payStatue = #{principalPeopleDetailSearch.inAccountStatue} AND payStatue = #{principalPeopleDetailSearch.inAccountStatue}
</if> </if>
<if test="principalPeopleDetailSearch.pack != null and principalPeopleDetailSearch.pack != ''">
AND pack = #{principalPeopleDetailSearch.pack}
</if>
<choose> <choose>
<when test="principalPeopleDetailSearch.allMoney != null and principalPeopleDetailSearch.allMoney != '' and principalPeopleDetailSearch.allMoneyTwo != null and principalPeopleDetailSearch.allMoneyTwo != ''"> <when test="principalPeopleDetailSearch.allMoney != null and principalPeopleDetailSearch.allMoney != '' and principalPeopleDetailSearch.allMoneyTwo != null and principalPeopleDetailSearch.allMoneyTwo != ''">
AND allMoney >= #{principalPeopleDetailSearch.allMoney} AND allMoney >= #{principalPeopleDetailSearch.allMoney}
@@ -2036,7 +2038,9 @@
<if test="CompanyComeMoneyDetailSearch.chargeUse != null and CompanyComeMoneyDetailSearch.chargeUse != ''"> <if test="CompanyComeMoneyDetailSearch.chargeUse != null and CompanyComeMoneyDetailSearch.chargeUse != ''">
AND chargeUse=#{CompanyComeMoneyDetailSearch.chargeUse} AND chargeUse=#{CompanyComeMoneyDetailSearch.chargeUse}
</if> </if>
<if test="CompanyComeMoneyDetailSearch.pack != null and CompanyComeMoneyDetailSearch.pack != ''">
AND pack =#{CompanyComeMoneyDetailSearch.pack}
</if>
<choose> <choose>
<when test="CompanyComeMoneyDetailSearch.allMoney != null and CompanyComeMoneyDetailSearch.allMoney != '' and CompanyComeMoneyDetailSearch.allMoneyTwo != null and CompanyComeMoneyDetailSearch.allMoneyTwo != ''"> <when test="CompanyComeMoneyDetailSearch.allMoney != null and CompanyComeMoneyDetailSearch.allMoney != '' and CompanyComeMoneyDetailSearch.allMoneyTwo != null and CompanyComeMoneyDetailSearch.allMoneyTwo != ''">
AND allMoney >= #{CompanyComeMoneyDetailSearch.allMoney} and allMoney <![CDATA[<]]>= AND allMoney >= #{CompanyComeMoneyDetailSearch.allMoney} and allMoney <![CDATA[<]]>=
@@ -2051,14 +2055,6 @@
</if> </if>
</otherwise> </otherwise>
</choose> </choose>
<!--<choose>
<when test="CompanyComeMoneyDetailSearch.paymentMonth != null and CompanyComeMoneyDetailSearch.paymentMonth != ''">
and confirmDate like concat('%',#{CompanyComeMoneyDetailSearch.paymentYear},'-',#{CompanyComeMoneyDetailSearch.paymentMonth},'%')
</when>
<when test="CompanyComeMoneyDetailSearch.paymentYear != null and CompanyComeMoneyDetailSearch.paymentYear != ''">
and confirmDate like concat('%',#{CompanyComeMoneyDetailSearch.paymentYear},'%')
</when>
</choose>-->
</where> </where>
) p ) p
<if test="CompanyComeMoneyDetailSearch.column != null and CompanyComeMoneyDetailSearch.column != ''"> <if test="CompanyComeMoneyDetailSearch.column != null and CompanyComeMoneyDetailSearch.column != ''">
@@ -2150,6 +2146,10 @@
AND chargeUse = #{CompanyComeMoneyDetailSearch.chargeUse} AND chargeUse = #{CompanyComeMoneyDetailSearch.chargeUse}
</if> </if>
<if test="CompanyComeMoneyDetailSearch.pack != null and CompanyComeMoneyDetailSearch.pack != ''">
AND pack =#{CompanyComeMoneyDetailSearch.pack}
</if>
<choose> <choose>
<when test="CompanyComeMoneyDetailSearch.allMoney != null and CompanyComeMoneyDetailSearch.allMoney != '' and CompanyComeMoneyDetailSearch.allMoneyTwo != null and CompanyComeMoneyDetailSearch.allMoneyTwo != ''"> <when test="CompanyComeMoneyDetailSearch.allMoney != null and CompanyComeMoneyDetailSearch.allMoney != '' and CompanyComeMoneyDetailSearch.allMoneyTwo != null and CompanyComeMoneyDetailSearch.allMoneyTwo != ''">
AND allMoney >= #{CompanyComeMoneyDetailSearch.allMoney} AND allMoney >= #{CompanyComeMoneyDetailSearch.allMoney}
@@ -2165,14 +2165,6 @@
</if> </if>
</otherwise> </otherwise>
</choose> </choose>
<!--<choose>
<when test="CompanyComeMoneyDetailSearch.paymentMonth != null and CompanyComeMoneyDetailSearch.paymentMonth != ''">
and confirmDate like concat('%',#{CompanyComeMoneyDetailSearch.paymentYear},'-',#{CompanyComeMoneyDetailSearch.paymentMonth},'%')
</when>
<when test="CompanyComeMoneyDetailSearch.paymentYear != null and CompanyComeMoneyDetailSearch.paymentYear != ''">
and confirmDate like concat('%',#{CompanyComeMoneyDetailSearch.paymentYear},'%')
</when>
</choose>-->
</where> </where>
) pp ) pp
</select> </select>
@@ -2350,7 +2342,7 @@
order by bill_date order by bill_date
</select> </select>
<!--全所收入统计 开票金额--> <!--全所收入统计 到账金额-->
<select id="queryListComeAllMoney" resultType="com.jero.statistics.entity.AllProjectStatistics"> <select id="queryListComeAllMoney" resultType="com.jero.statistics.entity.AllProjectStatistics">
select select
sum(no_tax_amount) as comeAllMoney, sum(no_tax_amount) as comeAllMoney,
@@ -2670,26 +2662,172 @@
<!-- 统计预计到账金额(应收金额) 预计到账日期 --> <!-- 统计预计到账金额(应收金额) 预计到账日期 -->
<select id="cumulativeListEstimatedArrivalMoney" <select id="cumulativeListEstimatedArrivalMoney"
resultType="com.jero.statistics.entity.AllProjectStatistics"> resultType="com.jero.statistics.entity.AllProjectStatistics">
select DATE_FORMAT(paymentDate, '%Y-%m') as paymentDate,sum(estimatedArrivalMoney) as estimatedArrivalMoney from ( select DATE_FORMAT(estimatedArrivalDate, '%Y-%m') as paymentDate,
select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate sum(allMoney) as estimatedArrivalMoney
from pay_common_project from v_statistical_pack
where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear} where DATE_FORMAT(estimatedArrivalDate, '%Y') = #{paymentYear}
and pack = 0 group by DATE_FORMAT(estimatedArrivalDate, '%Y-%m') order by paymentDate
union all </select>
select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
from pay_working_group_subitem <select id="queryPageListForCompanyClassification"
where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear} resultType="com.jero.statistics.entity.CompanyComeMoneyClassificationList">
and pack = 0 select chargeCompanyId as companyId,
union all chargeCompanyTemporaryName as companyName,
select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate year,
from pay_meeting_situation chargeUse,
where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear} SUM(allMoney) as allMoney
and pack = 0 from
union all v_statistical v
select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate <where>
from pay_member_project_subitem <if test="companyComeMoneySearch.years != null and companyComeMoneySearch.years != ''">
where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear} <foreach item="item" index="index" collection="companyComeMoneySearch.years"
and pack = 0 open="AND year in (" separator="," close=")">
) dataAll group by DATE_FORMAT(paymentDate, '%Y-%m') order by paymentDate #{item}
</foreach>
</if>
<if test="companyComeMoneySearch.chargeCompanyIds != null and companyComeMoneySearch.chargeCompanyIds != ''">
<foreach item="item" index="index" collection="companyComeMoneySearch.chargeCompanyIds"
open="AND chargeCompanyId in (" separator="," close=")">
#{item}
</foreach>
</if>
</where>
group by chargeCompanyId,year,chargeUse
</select>
<select id="queryPageListExcelForProject" resultType="com.jero.statistics.entity.AllProjectStatistics">
select * from
(select projectId,
projectName,
principalName,
chargeCompanyTemporaryName,
allMoney,
paidNoTaxAmount as comeAllMoney,
chargeUse,
depart,
createTime,
packText,
pack,
invoiceNoTaxAmount as billMoney,
confirmNoTaxAmount as confirmAmount,
year
from
<if test="allProjectStatisticsSearch.paymentYear == null or allProjectStatisticsSearch.paymentYear == ''">
v_statistical v
</if>
<if test="allProjectStatisticsSearch.paymentYear != null and allProjectStatisticsSearch.paymentYear != ''">
(select
<include refid="v_statistical_confirm_sql"/>
from v_statistical_confirm v
<where>
<choose>
<when test="allProjectStatisticsSearch.paymentMonth != null and allProjectStatisticsSearch.paymentMonth != ''">
and confirmDate like
concat('%',#{allProjectStatisticsSearch.paymentYear},'-',#{allProjectStatisticsSearch.paymentMonth},'%')
</when>
<when test="allProjectStatisticsSearch.paymentYear != null and allProjectStatisticsSearch.paymentYear != ''">
and confirmDate like concat('%',#{allProjectStatisticsSearch.paymentYear},'%')
</when>
</choose>
</where>
group by projectId
) v
</if>
<where>
<if test="idList != null and idList != ''">
principalNameId in
<foreach item="item" open="(" separator="," close=")" collection="idList">
#{item}
</foreach>
</if>
<if test="allProjectStatisticsSearch.projectName != null and allProjectStatisticsSearch.projectName != ''">
AND projectName LIKE
concat('%', #{allProjectStatisticsSearch.projectName}, '%')
</if>
<if test="allProjectStatisticsSearch.year != null and allProjectStatisticsSearch.year != ''">
AND year LIKE
concat(#{allProjectStatisticsSearch.year}, '%')
</if>
<if test="allProjectStatisticsSearch.payStatue != null and allProjectStatisticsSearch.payStatue != ''">
AND payStatue LIKE
concat('%', #{allProjectStatisticsSearch.payStatue}, '%')
</if>
<if test="allProjectStatisticsSearch.departCode != null and allProjectStatisticsSearch.departCode != ''">
AND departCode = #{allProjectStatisticsSearch.departCode}
</if>
<if test="allProjectStatisticsSearch.chargeUse != null and allProjectStatisticsSearch.chargeUse != ''">
AND chargeUse = #{allProjectStatisticsSearch.chargeUse}
</if>
<if test="allProjectStatisticsSearch.chargeCompanyTemporaryName != null and allProjectStatisticsSearch.chargeCompanyTemporaryName != ''">
AND chargeCompanyTemporaryName LIKE
concat('%', #{allProjectStatisticsSearch.chargeCompanyTemporaryName}, '%')
</if>
<if test="allProjectStatisticsSearch.principalNameId != null and allProjectStatisticsSearch.principalNameId != ''">
AND principalNameId = #{allProjectStatisticsSearch.principalNameId}
</if>
<if test="allProjectStatisticsSearch.pack != null and allProjectStatisticsSearch.pack != ''">
AND pack = #{allProjectStatisticsSearch.pack}
</if>
<if test="allProjectStatisticsSearch.estimatedArrivalDateHasFlag != null and allProjectStatisticsSearch.estimatedArrivalDateHasFlag == '1'.toString()">
AND estimatedArrivalDate is null
</if>
<if test="allProjectStatisticsSearch.estimatedArrivalDateHasFlag != null and allProjectStatisticsSearch.estimatedArrivalDateHasFlag == '0'.toString()">
AND estimatedArrivalDate is not null
</if>
<choose>
<when test="allProjectStatisticsSearch.estimatedArrivalMonth != null and allProjectStatisticsSearch.estimatedArrivalMonth != ''">
and estimatedArrivalDate like
concat('%',#{allProjectStatisticsSearch.estimatedArrivalYear},'-',#{allProjectStatisticsSearch.estimatedArrivalMonth},'%')
</when>
<when test="allProjectStatisticsSearch.estimatedArrivalYear != null and allProjectStatisticsSearch.estimatedArrivalYear != ''">
and estimatedArrivalDate like concat('%',#{allProjectStatisticsSearch.estimatedArrivalYear},'%')
</when>
</choose>
<choose>
<when test="allProjectStatisticsSearch.allMoney != null and allProjectStatisticsSearch.allMoney != '' and allProjectStatisticsSearch.allMoneyTwo != null and allProjectStatisticsSearch.allMoneyTwo != ''">
AND allMoney >= #{allProjectStatisticsSearch.allMoney}
and allMoney <![CDATA[<]]>=
#{allProjectStatisticsSearch.allMoneyTwo}
</when>
<otherwise>
<if test="allProjectStatisticsSearch.allMoney != null and allProjectStatisticsSearch.allMoney != ''">
AND allMoney >= #{allProjectStatisticsSearch.allMoney}
</if>
<if test="allProjectStatisticsSearch.allMoneyTwo != null and allProjectStatisticsSearch.allMoneyTwo != ''">
AND allMoney <![CDATA[<]]>= #{allProjectStatisticsSearch.allMoneyTwo}
</if>
</otherwise>
</choose>
<if test="allProjectStatisticsSearch.companyContactName != null and allProjectStatisticsSearch.companyContactName != ''">
and contactsName like concat('%', #{allProjectStatisticsSearch.companyContactName}, '%')
</if>
</where>
group by v.projectId) p
<if test="allProjectStatisticsSearch.column != null and allProjectStatisticsSearch.column != ''">
<if test="allProjectStatisticsSearch.column == 'allMoney' and allProjectStatisticsSearch.order == 'desc'">
order by allMoney desc
</if>
<if test="allProjectStatisticsSearch.column == 'comeAllMoney' and allProjectStatisticsSearch.order == 'desc'">
order by comeAllMoney desc
</if>
<if test="allProjectStatisticsSearch.column == 'billMoney' and allProjectStatisticsSearch.order == 'desc'">
order by billMoney desc
</if>
<if test="allProjectStatisticsSearch.column == 'confirmAmount' and allProjectStatisticsSearch.order == 'desc'">
order by confirmAmount desc
</if>
<if test="allProjectStatisticsSearch.column == 'confirmAmount' and allProjectStatisticsSearch.order == 'asc'">
order by confirmAmount
</if>
<if test="allProjectStatisticsSearch.column == 'allMoney' and allProjectStatisticsSearch.order == 'asc'">
order by allMoney
</if>
<if test="allProjectStatisticsSearch.column == 'comeAllMoney' and allProjectStatisticsSearch.order == 'asc'">
order by comeAllMoney
</if>
<if test="allProjectStatisticsSearch.column == 'billMoney' and allProjectStatisticsSearch.order == 'asc'">
order by billMoney
</if>
</if>
</select> </select>
</mapper> </mapper>
@@ -8,8 +8,6 @@
pwgs.working_group_id AS workingGroupId, pwgs.working_group_id AS workingGroupId,
pwgs.charge_company_id AS chargeCompanyId, pwgs.charge_company_id AS chargeCompanyId,
pwgs.charge_company_temporary_id AS chargeCompanyTemporaryId, pwgs.charge_company_temporary_id AS chargeCompanyTemporaryId,
<!-- pwgs.charge_company_temporary_name AS chargeCompanyTemporaryName,-->
# if(pwgs.charge_company_temporary_name = pcm.company_name, pwgs.charge_company_temporary_name, concat(pwgs.charge_company_temporary_name,'(更名为',pcm.company_name,')')) as chargeCompanyTemporaryName,
ifnull( IF( ifnull( IF(
pwgs.charge_company_temporary_name = pwgs.charge_company_temporary_name =
IF( IF(
@@ -57,11 +55,12 @@
pwgs.tax_rate, pwgs.tax_rate,
pwgs.no_tax_amount, pwgs.no_tax_amount,
pwgs.label, pwgs.label,
pwgs.estimated_arrival_date pwgs.estimated_arrival_date,
pwgs.check_payment_status,
pwgs.confirm_voucher
FROM pay_working_group_subitem pwgs FROM pay_working_group_subitem pwgs
LEFT JOIN pay_payment_record ppr ON ppr.project_id = pwgs.id 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 pwgs.charge_company_id = pcm.id
left join pay_company_management pcm on pcmt.company_id = pcm.id
<where> <where>
pwgs.working_group_id = #{payWorkingGroupSubItem.workingGroupId} pwgs.working_group_id = #{payWorkingGroupSubItem.workingGroupId}
<if test="payWorkingGroupSubItem.chargeCompanyTemporaryName != null and payWorkingGroupSubItem.chargeCompanyTemporaryName != ''"> <if test="payWorkingGroupSubItem.chargeCompanyTemporaryName != null and payWorkingGroupSubItem.chargeCompanyTemporaryName != ''">
@@ -92,6 +91,12 @@
<if test="payWorkingGroupSubItem.id != null and payWorkingGroupSubItem.id != ''"> <if test="payWorkingGroupSubItem.id != null and payWorkingGroupSubItem.id != ''">
and pwgs.id = #{payWorkingGroupSubItem.id} and pwgs.id = #{payWorkingGroupSubItem.id}
</if> </if>
<if test="payWorkingGroupSubItem.confirmVoucher != null">
and pwgs.confirm_voucher = #{payWorkingGroupSubItem.confirmVoucher}
</if>
<if test="payWorkingGroupSubItem.checkPaymentStatus != null">
and pwgs.check_payment_status = #{payWorkingGroupSubItem.checkPaymentStatus}
</if>
</where> </where>
GROUP BY pwgs.id GROUP BY pwgs.id
ORDER BY pwgs.create_time desc ORDER BY pwgs.create_time desc
@@ -127,7 +132,8 @@
</sql> </sql>
<!--工作组详情--> <!--工作组详情-->
<select id="queryPageList2" resultType="com.jero.project.entity.PayWorkGroupSubletStatistics"> <select id="queryPageList2" resultType="com.jero.project.entity.PayWorkGroupSubletStatistics">
SELECT select * from
(SELECT
principalNameId as principalId, principalNameId as principalId,
principalName, principalName,
chargeCompanyTemporaryName, chargeCompanyTemporaryName,
@@ -197,17 +203,37 @@
</if> </if>
</otherwise> </otherwise>
</choose> </choose>
<!--<if test="payWorkingGroupSubletSearch.paymentYear != null and payWorkingGroupSubletSearch.paymentYear != ''">
and DATE_FORMAT (pcpr.payment_date,'%Y') like concat(#{payWorkingGroupSubletSearch.paymentYear}, '%')
<if test="payWorkingGroupSubletSearch.paymentMonth != null and payWorkingGroupSubletSearch.paymentMonth != ''">
and DATE_FORMAT (pcpr.payment_date,'%m') like concat(#{payWorkingGroupSubletSearch.paymentMonth}, '%')
</if>
</if>-->
<if test="payWorkingGroupSubletSearch.pack != null and payWorkingGroupSubletSearch.pack != ''"> <if test="payWorkingGroupSubletSearch.pack != null and payWorkingGroupSubletSearch.pack != ''">
AND pack = #{payWorkingGroupSubletSearch.pack} AND pack = #{payWorkingGroupSubletSearch.pack}
</if> </if>
</where> </where>
group by id group by id) p
<if test="payWorkingGroupSubletSearch.column != null and payWorkingGroupSubletSearch.column != ''">
<if test="payWorkingGroupSubletSearch.column == 'allMoney' and payWorkingGroupSubletSearch.order == 'desc'">
order by allMoney desc
</if>
<if test="payWorkingGroupSubletSearch.column == 'comeAllMoney' and payWorkingGroupSubletSearch.order == 'desc'">
order by comeAllMoney desc
</if>
<if test="payWorkingGroupSubletSearch.column == 'billMoney' and payWorkingGroupSubletSearch.order == 'desc'">
order by billMoney desc
</if>
<if test="payWorkingGroupSubletSearch.column == 'confirmAmount' and payWorkingGroupSubletSearch.order == 'desc'">
order by confirmAmount desc
</if>
<if test="payWorkingGroupSubletSearch.column == 'confirmAmount' and payWorkingGroupSubletSearch.order == 'asc'">
order by confirmAmount
</if>
<if test="payWorkingGroupSubletSearch.column == 'allMoney' and payWorkingGroupSubletSearch.order == 'asc'">
order by allMoney
</if>
<if test="payWorkingGroupSubletSearch.column == 'comeAllMoney' and payWorkingGroupSubletSearch.order == 'asc'">
order by comeAllMoney
</if>
<if test="payWorkingGroupSubletSearch.column == 'billMoney' and payWorkingGroupSubletSearch.order == 'asc'">
order by billMoney
</if>
</if>
</select> </select>
<!--工作组详情总金额--> <!--工作组详情总金额-->
<select id="queryPageList233" resultType="com.jero.statistics.entity.AllMoney"> <select id="queryPageList233" resultType="com.jero.statistics.entity.AllMoney">
@@ -281,12 +307,6 @@
<if test="payWorkingGroupSubletSearch.pack != null and payWorkingGroupSubletSearch.pack != ''"> <if test="payWorkingGroupSubletSearch.pack != null and payWorkingGroupSubletSearch.pack != ''">
AND pack = #{payWorkingGroupSubletSearch.pack} AND pack = #{payWorkingGroupSubletSearch.pack}
</if> </if>
<!--<if test="payWorkingGroupSubletSearch.paymentYear != null and payWorkingGroupSubletSearch.paymentYear != ''">
and DATE_FORMAT (pcpr.payment_date,'%Y') like concat(#{payWorkingGroupSubletSearch.paymentYear}, '%')
<if test="payWorkingGroupSubletSearch.paymentMonth != null and payWorkingGroupSubletSearch.paymentMonth != ''">
and DATE_FORMAT (pcpr.payment_date,'%m') like concat(#{payWorkingGroupSubletSearch.paymentMonth}, '%')
</if>
</if>-->
</where> </where>
group by id) p group by id) p
</select> </select>
@@ -381,4 +401,10 @@
left join pay_working_group pwg ON pwgs.working_group_id = pwg.id left join pay_working_group pwg ON pwgs.working_group_id = pwg.id
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<select id="listByYear" resultType="com.jero.project.entity.PayWorkingGroupSubItem">
select pwgs.* from pay_working_group_subitem pwgs
left join pay_working_group pwg ON pwgs.working_group_id = pwg.id
where pwg.year = #{year}
</select>
</mapper> </mapper>
@@ -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<AnnualDataLockingMapper, AnnualDataLocking> {
@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<PayMeetingSituation> meetingSituations = meetingSituationMapper.listByYear(year);
List<PayWorkingGroupSubItem> workingGroupSubItems = payWorkingGroupSubItemMapper.listByYear(year);
List<String> workingGroupSubIdList = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getId).distinct().collect(Collectors.toList());
List<PayWorkingGroupSubItemContacts> workingGroupSubItemContacts = workingGroupSubItemContactsMapper.listByWorkingGroupSubIdIn(workingGroupSubIdList);
List<PayCommonProject> payCommonProjects = payCommonProjectMapper.listByYear(year);
List<PayMemberProjectSubitem> memberProjectSubitems = payMemberProjectSubitemMapper.listByYear(year);
List<TbMemberProjectSubitem> tbMemberProjectSubitems = tbMemberProjectSubitemMapper.listByYear(year);
List<PayPackCompany> packCompanyList = packCompanyMapper.listByYear(year);
//获得去重后的所有企业和联系人(联系人和邮寄联系人)
ArrayList<String> distinctCompanyIdList = getDistinctCompanyIdList(meetingSituations, workingGroupSubItems, payCommonProjects, memberProjectSubitems, tbMemberProjectSubitems,packCompanyList);
ArrayList<String> distinctContactIdList = getDistinctContactIdList(meetingSituations, workingGroupSubItems, workingGroupSubItemContacts, payCommonProjects, memberProjectSubitems, tbMemberProjectSubitems,packCompanyList);
//如果企业或联系人为空那么直接返回
if (CollectionUtil.isEmpty(distinctCompanyIdList)||CollectionUtil.isEmpty(distinctContactIdList)){
return "";
}
//生成企业和联系人临时数据
List<PayCompanyManagementTemporary> companyTemporaryList = companyTemporaryService.insertList(distinctCompanyIdList,year);
Map<String, PayCompanyManagementTemporary> companyTemporaryMap = CollStreamUtil.toIdentityMap(companyTemporaryList, PayCompanyManagementTemporary::getCompanyId);
List<PayContactsManagementTemporary> contactsTemporaryList = contactsTemporaryService.insertList(distinctContactIdList,year);
Map<String, PayContactsManagementTemporary> contactsTemporaryMap = CollStreamUtil.toIdentityMap(contactsTemporaryList, PayContactsManagementTemporary::getContactId);
//会议项目
List<PayMeetingSituation> 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<PayWorkingGroupSubItem> 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<PayWorkingGroupSubItemContacts> 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<PayCommonProject> 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<PayMemberProjectSubitem> 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<TbMemberProjectSubitem> 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<PayPackCompany> 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<String> getDistinctContactIdList(List<PayMeetingSituation> meetingSituations, List<PayWorkingGroupSubItem> workingGroupSubItems, List<PayWorkingGroupSubItemContacts> workingGroupSubItemContacts, List<PayCommonProject> payCommonProjects, List<PayMemberProjectSubitem> memberProjectSubitems, List<TbMemberProjectSubitem> tbMemberProjectSubitems, List<PayPackCompany> packCompanys) {
//获得所有联系人id
List<String> contactIdList1 = meetingSituations.stream().map(PayMeetingSituation::getCompanyContactId).distinct().collect(Collectors.toList());
List<String> contactIdList2 = workingGroupSubItemContacts.stream().map(PayWorkingGroupSubItemContacts::getContactsId).distinct().collect(Collectors.toList());
List<String> contactIdList3 = payCommonProjects.stream().map(PayCommonProject::getContactsId).distinct().collect(Collectors.toList());
List<String> contactIdList4 = memberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyContactId).distinct().collect(Collectors.toList());
List<String> contactIdList5 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getLiaisonManId).distinct().collect(Collectors.toList());
List<String> 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<String> postContactIdList1 = meetingSituations.stream().map(PayMeetingSituation::getPostContactId).distinct().collect(Collectors.toList());
List<String> postContactIdList2 = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getMailContactsId).distinct().collect(Collectors.toList());
List<String> postContactIdList3 = payCommonProjects.stream().map(PayCommonProject::getMailContactsId).distinct().collect(Collectors.toList());
List<String> postContactIdList4 = memberProjectSubitems.stream().map(PayMemberProjectSubitem::getPostContactId).distinct().collect(Collectors.toList());
List<String> postContactIdList5 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getPostContactId).distinct().collect(Collectors.toList());
List<String> 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<String> getDistinctCompanyIdList(List<PayMeetingSituation> meetingSituations, List<PayWorkingGroupSubItem> workingGroupSubItems, List<PayCommonProject> payCommonProjects, List<PayMemberProjectSubitem> memberProjectSubitems, List<TbMemberProjectSubitem> tbMemberProjectSubitems, List<PayPackCompany> packCompanys) {
//获取所有企业id
List<String> companyIdList1 = meetingSituations.stream().map(PayMeetingSituation::getCompanyId).distinct().collect(Collectors.toList());
List<String> companyIdList2 = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getChargeCompanyId).distinct().collect(Collectors.toList());
List<String> companyIdList3 = payCommonProjects.stream().map(PayCommonProject::getChargeCompanyId).distinct().collect(Collectors.toList());
List<String> companyIdList4 = memberProjectSubitems.stream().map(PayMemberProjectSubitem::getCompanyId).distinct().collect(Collectors.toList());
List<String> companyIdList5 = tbMemberProjectSubitems.stream().map(TbMemberProjectSubitem::getCompanyId).distinct().collect(Collectors.toList());
List<String> 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<String> 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<PayMeetingSituation> updateMeetingSituationList = new ArrayList<>();
List<PayMeetingSituation> 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<PayWorkingGroupSubItem> updateWorkingGroupSubItemList = new ArrayList<>();
List<PayWorkingGroupSubItem> 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<PayWorkingGroupSubItemContacts> updateWorkingGroupSubItemContacts = new ArrayList<>();
List<String> workingGroupSubIdList = workingGroupSubItems.stream().map(PayWorkingGroupSubItem::getId).distinct().collect(Collectors.toList());
List<PayWorkingGroupSubItemContacts> 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<PayCommonProject> updatePayCommonProjects = new ArrayList<>();
List<PayCommonProject> 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<PayMemberProjectSubitem> updateMemberProjectSubitems = new ArrayList<>();
List<PayMemberProjectSubitem> 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<TbMemberProjectSubitem> updateTbMemberProjectSubitems = new ArrayList<>();
List<TbMemberProjectSubitem> 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<PayPackCompany> updatePackCompanyList = new ArrayList<>();
List<PayPackCompany> 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<String> idList) {
for (String id : idList) {
deleteById(id);
}
}
public AnnualDataLocking queryById(String id) {
AnnualDataLocking annualDataLocking = this.getById(id);
return annualDataLocking;
}
}
@@ -9,7 +9,8 @@ import com.jero.project.vo.PayWorkingGroupVO;
import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroup;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.statistics.entity.*; import com.jero.statistics.entity.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
/** /**
@@ -259,4 +260,15 @@ public interface IPayWorkingGroupService extends IService<PayWorkingGroup> {
* @param payWorkingGroupSubItem 工作组成员 * @param payWorkingGroupSubItem 工作组成员
*/ */
void validAndSetDefaultValue(PayWorkingGroupSubItem payWorkingGroupSubItem); void validAndSetDefaultValue(PayWorkingGroupSubItem payWorkingGroupSubItem);
/**
* 全部文件导出
* @param request
* @param response
*/
void exportAllFile(HttpServletRequest request, HttpServletResponse response, PayWorkingGroup payWorkingGroup);
List<CompanyComeMoneyClassificationList> queryPageListForCompanyClassification(CompanyComeMoneySearch companyComeMoneySearch);
List<AllProjectStatistics> queryPageListExcelForProject(AllProjectStatisticsSearch allProjectStatisticsSearch, List<String> idList);
} }
@@ -145,4 +145,10 @@ public interface IPayWorkingGroupSubItemService extends IService<PayWorkingGroup
* @param id * @param id
*/ */
void editAccount(String workGroupId, String companyId, String id); void editAccount(String workGroupId, String companyId, String id);
/**
* 确认凭证
* @param id
*/
void confirmVoucher(String id);
} }
@@ -22,13 +22,14 @@ import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService; import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService; import com.jero.contract.service.IPayIncomeContractService;
import com.jero.mail.service.IPayMailBillService; import com.jero.mail.service.IPayMailBillService;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompanyProject; import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.payment.service.IPayPaymentCheckService; import com.jero.payment.service.IPayPaymentCheckService;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.project.service.IPayCommonProjectService; import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayCommonProject;
import com.jero.project.mapper.PayCommonProjectMapper; import com.jero.project.mapper.PayCommonProjectMapper;
@@ -85,6 +86,8 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
private IPayPaymentCheckService payPaymentCheckService; private IPayPaymentCheckService payPaymentCheckService;
@Resource @Resource
private IPayMailBillService payMailBillService; private IPayMailBillService payMailBillService;
@Resource
private AnnualDataLockingService annualDataLockingService;
@@ -109,7 +112,11 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
log.info("普通项目管理-添加异常",e); log.info("普通项目管理-添加异常",e);
throw new JeroBootException("来款项目已存在!"); throw new JeroBootException("来款项目已存在!");
} }
setPayCommonProjectAdd(payCommonProject); String year = payCommonProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
setPayCommonProjectAdd(payCommonProject,annualDataLocking);
payCommonProject.setInAccount(PayProjectCommon.IN_ACCOUNT0); payCommonProject.setInAccount(PayProjectCommon.IN_ACCOUNT0);
payCommonProject.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0); payCommonProject.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
payCommonProject.setMail(PayProjectCommon.MAIL0); payCommonProject.setMail(PayProjectCommon.MAIL0);
@@ -178,6 +185,13 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
if(Objects.equals(payCommonProjectOld.getPack(),PayProjectCommon.PACKAGING1)){ if(Objects.equals(payCommonProjectOld.getPack(),PayProjectCommon.PACKAGING1)){
throw new JeroBootException("项目已打包,不可编辑!"); throw new JeroBootException("项目已打包,不可编辑!");
} }
String year = payCommonProjectOld.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking1 = annualDataLockingService.judgeUserYear(year);
String year1 = payCommonProject.getYear();
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year1);
// 项目为打包状态 || 到账!=0 || 开票!=0 || 邮寄!=0 // 项目为打包状态 || 到账!=0 || 开票!=0 || 邮寄!=0
if(!Objects.equals(payCommonProject.getChargeCompanyId(),payCommonProjectOld.getChargeCompanyId()) if(!Objects.equals(payCommonProject.getChargeCompanyId(),payCommonProjectOld.getChargeCompanyId())
&& (Objects.equals(payCommonProject.getPack(),PayProjectCommon.PACKAGING1) && (Objects.equals(payCommonProject.getPack(),PayProjectCommon.PACKAGING1)
@@ -228,7 +242,7 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
} }
} }
setPayCommonProjectEdit(payCommonProject,payCommonProjectOld); setPayCommonProjectEdit(payCommonProject,payCommonProjectOld,annualDataLocking);
// 变更待确收金额,重新校验状态 // 变更待确收金额,重新校验状态
ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payCommonProject.getId(),payCommonProject.getReceivableAmount(),payCommonProject.getNeedInvoice()); ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payCommonProject.getId(),payCommonProject.getReceivableAmount(),payCommonProject.getNeedInvoice());
if(!Objects.isNull(projectStatusVO)){ if(!Objects.isNull(projectStatusVO)){
@@ -242,7 +256,7 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
payCommonProject.setMail(projectStatusVO.getMail()); payCommonProject.setMail(projectStatusVO.getMail());
} }
} }
String paymentStatus = payPaymentCheckService.getPaymentStatus(payCommonProject.getReceivableAmount(),payCommonProject.getPaidAmount(),payCommonProject.getPaymentStatus()); String paymentStatus = payPaymentCheckService.getPaymentStatus(payCommonProject.getReceivableAmount(),payCommonProject.getPaidAmount(),payCommonProject.getPaymentStatus(), false);
payCommonProject.setPaymentStatus(paymentStatus); payCommonProject.setPaymentStatus(paymentStatus);
payCommonProjectService.updateById(payCommonProject); payCommonProjectService.updateById(payCommonProject);
@@ -330,6 +344,10 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
if(!rolePermissionService.getRolePermission(perms) && !Objects.equals(payCommonProject.getPrincipalId(), sysUser.getId())){ if(!rolePermissionService.getRolePermission(perms) && !Objects.equals(payCommonProject.getPrincipalId(), sysUser.getId())){
sb.append(payCommonProject.getChargeProject() + "项目不可操作!<br/>"); sb.append(payCommonProject.getChargeProject() + "项目不可操作!<br/>");
} }
String year = payCommonProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
if(!StringUtils.isEmpty(sb)){ if(!StringUtils.isEmpty(sb)){
return sb; return sb;
} }
@@ -353,8 +371,8 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
update.eq(PayPackCompanyProject::getProjectId,payCommonProject.getId()); update.eq(PayPackCompanyProject::getProjectId,payCommonProject.getId());
payPackCompanyProjectService.remove(update); payPackCompanyProjectService.remove(update);
// 删除企业联系人临时数据 // 删除企业联系人临时数据
payCompanyManagementTemporaryService.removeById(payCommonProject.getChargeCompanyTemporaryId()); //payCompanyManagementTemporaryService.removeById(payCommonProject.getChargeCompanyTemporaryId());
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProject.getContactsTemporaryId(),payCommonProject.getMailContactsTemporaryId())); // paycontactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProject.getContactsTemporaryId(),payCommonProject.getMailContactsTemporaryId()));
return sb; return sb;
} }
@@ -366,21 +384,21 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
* @Return * @Return
* @Exception * @Exception
*/ */
private void setPayCommonProjectAdd(PayCommonProject payCommonProject){ private void setPayCommonProjectAdd(PayCommonProject payCommonProject, AnnualDataLocking annualDataLocking){
// 企业 // 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payCommonProject.getChargeCompanyId()); PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payCommonProject.getChargeCompanyId(), annualDataLocking);
if(Objects.isNull(chargeCompanyName)){ if(Objects.isNull(chargeCompanyName)){
throw new JeroBootException("企业名称为空!"); throw new JeroBootException("企业名称为空!");
} }
// 联系人 // 联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getContactsId()); PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getContactsId(), annualDataLocking);
if(Objects.isNull(contactsName)){ if(Objects.isNull(contactsName)){
throw new JeroBootException("联系人名称为空!"); throw new JeroBootException("联系人名称为空!");
} }
// 邮寄联系人 // 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getMailContactsId()); PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getMailContactsId(), annualDataLocking);
if(Objects.isNull(mailContactsName)){ if(Objects.isNull(mailContactsName)){
throw new JeroBootException("邮寄联系人名称为空!"); throw new JeroBootException("邮寄联系人名称为空!");
} }
@@ -408,17 +426,17 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
* @Return * @Return
* @Exception * @Exception
*/ */
private void setPayCommonProjectEdit(PayCommonProject payCommonProject,PayCommonProject payCommonProjectOld){ private void setPayCommonProjectEdit(PayCommonProject payCommonProject, PayCommonProject payCommonProjectOld, AnnualDataLocking annualDataLocking){
// 企业id != 企业模板id 变更 // 企业id != 企业模板id 变更
if(!Objects.equals(payCommonProject.getChargeCompanyId(),payCommonProjectOld.getChargeCompanyTemporaryId())){ if(!Objects.equals(payCommonProject.getChargeCompanyId(),payCommonProjectOld.getChargeCompanyTemporaryId())){
// 企业 // 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payCommonProject.getChargeCompanyId()); PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payCommonProject.getChargeCompanyId(), annualDataLocking);
if(Objects.isNull(chargeCompanyName)){ if(Objects.isNull(chargeCompanyName)){
throw new JeroBootException("企业名称为空!"); throw new JeroBootException("企业名称为空!");
} }
payCommonProject.setChargeCompanyTemporaryId(chargeCompanyName.getId()); payCommonProject.setChargeCompanyTemporaryId(chargeCompanyName.getId());
payCommonProject.setChargeCompanyTemporaryName(chargeCompanyName.getCompanyName()); payCommonProject.setChargeCompanyTemporaryName(chargeCompanyName.getCompanyName());
payCompanyManagementTemporaryService.removeById(payCommonProjectOld.getChargeCompanyTemporaryId()); //payCompanyManagementTemporaryService.removeById(payCommonProjectOld.getChargeCompanyTemporaryId());
}else{ }else{
payCommonProject.setChargeCompanyId(payCommonProjectOld.getChargeCompanyId()); payCommonProject.setChargeCompanyId(payCommonProjectOld.getChargeCompanyId());
} }
@@ -427,13 +445,13 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
// 联系人id != 联系人模板id 变更 // 联系人id != 联系人模板id 变更
if(!Objects.equals(payCommonProject.getContactsId(),payCommonProjectOld.getContactsTemporaryId())){ if(!Objects.equals(payCommonProject.getContactsId(),payCommonProjectOld.getContactsTemporaryId())){
// 联系人 // 联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getContactsId()); PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getContactsId(), annualDataLocking);
if(Objects.isNull(contactsName)){ if(Objects.isNull(contactsName)){
throw new JeroBootException("联系人名称为空!"); throw new JeroBootException("联系人名称为空!");
} }
payCommonProject.setContactsTemporaryId(contactsName.getId()); payCommonProject.setContactsTemporaryId(contactsName.getId());
payCommonProject.setContactsTemporaryName(contactsName.getName()); payCommonProject.setContactsTemporaryName(contactsName.getName());
payContactsManagementTemporaryService.removeById(payCommonProjectOld.getContactsTemporaryId()); // payContactsManagementTemporaryService.removeById(payCommonProjectOld.getContactsTemporaryId());
}else{ }else{
payCommonProject.setContactsId(payCommonProjectOld.getContactsId()); payCommonProject.setContactsId(payCommonProjectOld.getContactsId());
} }
@@ -441,13 +459,13 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
// 邮寄联系人id != 邮寄联系人模板id 变更 // 邮寄联系人id != 邮寄联系人模板id 变更
if(!Objects.equals(payCommonProject.getMailContactsId(),payCommonProjectOld.getMailContactsTemporaryId())){ if(!Objects.equals(payCommonProject.getMailContactsId(),payCommonProjectOld.getMailContactsTemporaryId())){
// 邮寄联系人 // 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getMailContactsId()); PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getMailContactsId(), annualDataLocking);
if(Objects.isNull(mailContactsName)){ if(Objects.isNull(mailContactsName)){
throw new JeroBootException("邮寄联系人名称为空!"); throw new JeroBootException("邮寄联系人名称为空!");
} }
payCommonProject.setMailContactsTemporaryId(mailContactsName.getId()); payCommonProject.setMailContactsTemporaryId(mailContactsName.getId());
payCommonProject.setMailContactsTemporaryName(mailContactsName.getName()); payCommonProject.setMailContactsTemporaryName(mailContactsName.getName());
payContactsManagementTemporaryService.removeById(payCommonProjectOld.getMailContactsTemporaryId()); // payContactsManagementTemporaryService.removeById(payCommonProjectOld.getMailContactsTemporaryId());
}else{ }else{
payCommonProject.setMailContactsId(payCommonProjectOld.getMailContactsId()); payCommonProject.setMailContactsId(payCommonProjectOld.getMailContactsId());
} }
@@ -15,23 +15,25 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.service.ContractCreateProjectSendMessageService; import com.jero.common.service.ContractCreateProjectSendMessageService;
import com.jero.common.service.RolePermissionService; import com.jero.common.service.RolePermissionService;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayContactsManagement; import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService; import com.jero.company.service.IPayContactsManagementService;
import com.jero.config.StaticConfig; import com.jero.config.StaticConfig;
import com.jero.contract.entity.PayIncomeContractAssociated; import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService; import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.mail.commont.constant;
import com.jero.meeting.common.MeetingCommon; import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.entity.PayMeeting; import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.service.IPayMeetingService; import com.jero.meeting.service.IPayMeetingService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.ISysUserService;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.*; import com.jero.project.entity.*;
import com.jero.project.mapper.PayWorkingGroupMapper; import com.jero.project.mapper.PayWorkingGroupMapper;
import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper; import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper;
import com.jero.project.service.IPayResearchProjectService; import com.jero.project.service.*;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.project.vo.PayWorkingGroupVO; import com.jero.project.vo.PayWorkingGroupVO;
import com.jero.statistics.entity.*; import com.jero.statistics.entity.*;
import com.jero.temporary.entity.PayCompanyManagementTemporary; import com.jero.temporary.entity.PayCompanyManagementTemporary;
@@ -43,16 +45,21 @@ import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/** /**
@@ -89,6 +96,14 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
private PayWorkingGroupSubItemContactsMapper payWorkingGroupSubItemContactsMapper; private PayWorkingGroupSubItemContactsMapper payWorkingGroupSubItemContactsMapper;
@Resource @Resource
private IPayMeetingService payMeetingService; private IPayMeetingService payMeetingService;
@Resource
private IPayWorkingGroupDataFileService payWorkingGroupDataFileService;
@Resource
private IOSSFileService iossFileService;
@Resource
private AnnualDataLockingService annualDataLockingService;
@Value("${jero.path.upload}")
private String upLoadPath;
@Override @Override
public IPage<PayWorkingGroupVO> queryPageList(Page<PayWorkingGroupVO> page, PayWorkingGroup payWorkingGroup) { public IPage<PayWorkingGroupVO> queryPageList(Page<PayWorkingGroupVO> page, PayWorkingGroup payWorkingGroup) {
@@ -116,7 +131,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
!Objects.equals(payWorkingGroupOld.getPrincipalIdB(),sysUser.getId())){ !Objects.equals(payWorkingGroupOld.getPrincipalIdB(),sysUser.getId())){
throw new JeroBootException(payWorkingGroupOld.getWorkingGroupProject() + "工作组项目不可操作!"); throw new JeroBootException(payWorkingGroupOld.getWorkingGroupProject() + "工作组项目不可操作!");
} }
String year = payWorkingGroupOld.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>();
query.eq(PayWorkingGroupSubItem::getWorkingGroupId,id); query.eq(PayWorkingGroupSubItem::getWorkingGroupId,id);
List<PayWorkingGroupSubItem> listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query); List<PayWorkingGroupSubItem> listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query);
@@ -154,6 +171,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
!Objects.equals(payWorkingGroupOld.getPrincipalIdB(),sysUser.getId())){ !Objects.equals(payWorkingGroupOld.getPrincipalIdB(),sysUser.getId())){
sb.append(payWorkingGroupOld.getWorkingGroupProject() + "工作组项目不可操作!<br/>"); sb.append(payWorkingGroupOld.getWorkingGroupProject() + "工作组项目不可操作!<br/>");
} }
String year = payWorkingGroupOld.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>();
query.eq(PayWorkingGroupSubItem::getWorkingGroupId, p); query.eq(PayWorkingGroupSubItem::getWorkingGroupId, p);
List<PayWorkingGroupSubItem> listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query); List<PayWorkingGroupSubItem> listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query);
@@ -232,6 +252,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
payWorkingGroupOld.setId(null); payWorkingGroupOld.setId(null);
payWorkingGroupOld.setWorkingGroupProject(str); payWorkingGroupOld.setWorkingGroupProject(str);
payWorkingGroupOld.setYear(String.valueOf(DateUtil.thisYear()));
payWorkingGroupOld.setChargeA(null); payWorkingGroupOld.setChargeA(null);
payWorkingGroupOld.setChargeNoticeNoA(null); payWorkingGroupOld.setChargeNoticeNoA(null);
payWorkingGroupOld.setChargeNoticeAId(null); payWorkingGroupOld.setChargeNoticeAId(null);
@@ -274,7 +295,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
// 添加企业临时数据 // 添加企业临时数据
PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getById(p.getChargeCompanyTemporaryId()); PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getById(p.getChargeCompanyTemporaryId());
if(Objects.isNull(payCompanyManagementTemporary)){ if(Objects.isNull(payCompanyManagementTemporary)){
payCompanyManagementTemporary = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(p.getChargeCompanyId()); payCompanyManagementTemporary = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(p.getChargeCompanyId(), null);
}else{ }else{
payCompanyManagementTemporary.setCompanyId(payCompanyManagementTemporary.getCompanyId()); payCompanyManagementTemporary.setCompanyId(payCompanyManagementTemporary.getCompanyId());
payCompanyManagementTemporary.setId(null); payCompanyManagementTemporary.setId(null);
@@ -287,7 +308,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
// 添加邮寄联系人临时数据 // 添加邮寄联系人临时数据
PayContactsManagementTemporary payContactsManagementTemporaryMail = payContactsManagementTemporaryService.getById(p.getMailContactsId()); PayContactsManagementTemporary payContactsManagementTemporaryMail = payContactsManagementTemporaryService.getById(p.getMailContactsId());
if(Objects.isNull(payContactsManagementTemporaryMail)){ if(Objects.isNull(payContactsManagementTemporaryMail)){
payContactsManagementTemporaryMail = payContactsManagementTemporaryService.insertContactsManagementTemporary(p.getMailContactsId()); payContactsManagementTemporaryMail = payContactsManagementTemporaryService.insertContactsManagementTemporary(p.getMailContactsId(), null);
} else { } else {
payContactsManagementTemporaryMail.setCompanyId(payContactsManagementTemporaryMail.getId()); payContactsManagementTemporaryMail.setCompanyId(payContactsManagementTemporaryMail.getId());
payContactsManagementTemporaryMail.setId(null); payContactsManagementTemporaryMail.setId(null);
@@ -349,7 +370,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
for (PayWorkingGroupSubItemContacts subItemContacts : itemContactsList) { for (PayWorkingGroupSubItemContacts subItemContacts : itemContactsList) {
PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(subItemContacts.getContactsTemporaryId()); PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(subItemContacts.getContactsTemporaryId());
if(Objects.isNull(payContactsManagementTemporary)){ if(Objects.isNull(payContactsManagementTemporary)){
payContactsManagementTemporary = payContactsManagementTemporaryService.insertContactsManagementTemporary(subItemContacts.getContactsId()); payContactsManagementTemporary = payContactsManagementTemporaryService.insertContactsManagementTemporary(subItemContacts.getContactsId(), null);
}else{ }else{
payContactsManagementTemporary.setId(null); payContactsManagementTemporary.setId(null);
payContactsManagementTemporary.setCompanyId(p.getChargeCompanyTemporaryId()); payContactsManagementTemporary.setCompanyId(p.getChargeCompanyTemporaryId());
@@ -588,6 +609,13 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
public AllMoney queryPageListProjectTotal(AllProjectStatisticsSearch allProjectStatisticsSearch, List<String> idList) { public AllMoney queryPageListProjectTotal(AllProjectStatisticsSearch allProjectStatisticsSearch, List<String> idList) {
return payWorkingGroupMapper.queryPageListProjectTotal(allProjectStatisticsSearch, idList); return payWorkingGroupMapper.queryPageListProjectTotal(allProjectStatisticsSearch, idList);
} }
/**
* 科室统计excel
*/
@Override
public List<AllProjectStatistics> queryPageListExcelForProject(AllProjectStatisticsSearch allProjectStatisticsSearch, List<String> idList) {
return payWorkingGroupMapper.queryPageListExcelForProject(allProjectStatisticsSearch, idList);
}
@Override @Override
public AllMoney queryPageListForCompany33(CompanyComeMoneySearch companyComeMoneySearch,List<String> idList) { public AllMoney queryPageListForCompany33(CompanyComeMoneySearch companyComeMoneySearch,List<String> idList) {
@@ -692,23 +720,37 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
// 预计到账金额 // 预计到账金额
List<AllProjectStatistics> listEstimatedArrivalMoney = payWorkingGroupMapper.cumulativeListEstimatedArrivalMoney(allProjectStatisticsSearch.getPaymentYear()); List<AllProjectStatistics> listEstimatedArrivalMoney = payWorkingGroupMapper.cumulativeListEstimatedArrivalMoney(allProjectStatisticsSearch.getPaymentYear());
List<AllProjectStatistics> list2=getAllProjectMoneyStatistics(allProjectStatisticsSearch,allMoneyList,listConfirmAmount, listBillMoney,listComeAllMoney,listEstimatedArrivalMoney); List<AllProjectStatistics> list2=getAllProjectMoneyStatistics(allProjectStatisticsSearch,allMoneyList,listConfirmAmount, listBillMoney,listComeAllMoney,listEstimatedArrivalMoney);
AllMoney allMoney=payWorkingGroupMapper.queryPageList33(allProjectStatisticsSearch, idList); //AllMoney allMoney=payWorkingGroupMapper.queryPageList33(allProjectStatisticsSearch, idList);
List<String> comeAllMoneyList=list2.stream().map(AllProjectStatistics::getComeAllMoney).collect(Collectors.toList()); List<String> comeAllMoneyList=list2.stream().map(AllProjectStatistics::getComeAllMoney).collect(Collectors.toList());
List<String> billMoneyList=list2.stream().map(AllProjectStatistics::getBillMoney).collect(Collectors.toList()); List<String> billMoneyList=list2.stream().map(AllProjectStatistics::getBillMoney).collect(Collectors.toList());
List<String> confirmMoneyList=list2.stream().map(AllProjectStatistics::getConfirmAmount).collect(Collectors.toList()); List<String> confirmMoneyList=list2.stream().map(AllProjectStatistics::getConfirmAmount).collect(Collectors.toList());
List<String> allMoneyList1=list2.stream().map(AllProjectStatistics::getComeAllMoney).collect(Collectors.toList()); List<String> allMoneyList1=list2.stream().map(AllProjectStatistics::getEstimatedArrivalMoney).collect(Collectors.toList());
List<List<String>> list3 = new ArrayList<>(); List<List<String>> list3 = new ArrayList<>();
list3.add(0,allMoneyList1); list3.add(0,allMoneyList1);
list3.add(1,confirmMoneyList); list3.add(1,confirmMoneyList);
list3.add(2,billMoneyList); list3.add(2,billMoneyList);
list3.add(3,comeAllMoneyList); 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 comeAllProjectMoney=new AllProjectMoneyExcel("到账金额",comeAllMoney.toString());
AllProjectMoneyExcel billAllProjectMoney=new AllProjectMoneyExcel("开票金额",allMoney.getBillMoney()); AllProjectMoneyExcel billAllProjectMoney=new AllProjectMoneyExcel("开票金额",billMoney.toString());
AllProjectMoneyExcel confirmAllProjectMoney=new AllProjectMoneyExcel("确认收入金额",allMoney.getConfirmAmount()); AllProjectMoneyExcel confirmAllProjectMoney=new AllProjectMoneyExcel("确认收入金额",confirmAmount.toString());
AllProjectMoneyExcel allProjectMoney=new AllProjectMoneyExcel("年度待确收金额",allMoney.getAllMoney()); AllProjectMoneyExcel allProjectMoney=new AllProjectMoneyExcel("预估收入金额",allMoney.toString());
List<AllProjectMoneyExcel> excelList = new ArrayList<>(); List<AllProjectMoneyExcel> excelList = new ArrayList<>();
excelList.add(0,allProjectMoney); excelList.add(0,allProjectMoney);
excelList.add(1,confirmAllProjectMoney); excelList.add(1,confirmAllProjectMoney);
@@ -748,6 +790,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
if (Objects.isNull(payWorkingGroup)) { if (Objects.isNull(payWorkingGroup)) {
throw new JeroBootException("工作组不存在"); throw new JeroBootException("工作组不存在");
} }
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
// 找到是否付费标识 // 找到是否付费标识
Integer payFlag = payWorkingGroup.getPayFlag(); Integer payFlag = payWorkingGroup.getPayFlag();
if (Objects.isNull(payFlag)) { if (Objects.isNull(payFlag)) {
@@ -831,5 +876,221 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
return yearMonthList; return yearMonthList;
} }
/**
* 全部文件导出
*
* @param request
* @param response
*/
@Override
public void exportAllFile(HttpServletRequest request, HttpServletResponse response, PayWorkingGroup payWorkingGroup) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (StringUtils.isNotBlank(sysUser.getRoleCode())) {
List<String> 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<PayWorkingGroupVO> page = new Page<>(-1, -1);
String workingGroupProject = payWorkingGroup.getWorkingGroupProject();
if (StringUtils.isNotBlank(workingGroupProject)) {
payWorkingGroup.setWorkingGroupProject(oConvertUtils.replaceAllPercent(workingGroupProject));
}
List<PayWorkingGroupVO> pageList = payWorkingGroupService.queryPageList(page, payWorkingGroup).getRecords();
String selections = request.getParameter("selections");
List<String> ids = pageList.stream().map(PayWorkingGroupVO::getId).collect(Collectors.toList());
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
ids.retainAll(selectionList);
}
if (oConvertUtils.isEmpty(ids)) {
throw new JeroBootException("没有工作组文件可以导出!");
}
Set<String> 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<PayWorkingGroupDataFile> 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<PayResearchProject> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayResearchProject::getWorkingGroupId, projectId);
List<PayResearchProject> payResearchProjectList = payResearchProjectService.list(queryWrapper);
for (PayResearchProject payResearchProject : payResearchProjectList) {
String projectName = payResearchProject.getProjectName();
String projectFolderPath = researchProjectFolderPath + projectName + "/";
createEntry(zipos, projectFolderPath, addedEntries);
List<String> 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<PayMeeting> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(PayMeeting::getWorkingGroupId, projectId);
lambdaQueryWrapper.eq(PayMeeting::getMeetingType, MeetingCommon.WORKING_GROUP_MEETING_INT);
List<PayMeeting> 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<String> 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<CompanyComeMoneyClassificationList> queryPageListForCompanyClassification(CompanyComeMoneySearch companyComeMoneySearch) {
return payWorkingGroupMapper.queryPageListForCompanyClassification(companyComeMoneySearch);
}
private void createEntry(ZipOutputStream zipos, String folderPath, Set<String> 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<String> 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);
}
} }
@@ -33,7 +33,6 @@ import com.jero.contract.service.IPayIncomeContractService;
import com.jero.mail.service.IPayMailBillService; import com.jero.mail.service.IPayMailBillService;
import com.jero.meeting.entity.PayMeetingRemindRecord; import com.jero.meeting.entity.PayMeetingRemindRecord;
import com.jero.meeting.service.IPayMeetingRemindRecordService; import com.jero.meeting.service.IPayMeetingRemindRecordService;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.entity.SysUser; 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.entity.*;
import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper; import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper;
import com.jero.project.mapper.PayWorkingGroupSubItemMapper; import com.jero.project.mapper.PayWorkingGroupSubItemMapper;
import com.jero.project.service.IPayCommonProjectService; import com.jero.project.service.*;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemContactsService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.project.vo.SetChargeInput; import com.jero.project.vo.SetChargeInput;
import com.jero.project.vo.SetLabelVO; import com.jero.project.vo.SetLabelVO;
import com.jero.statistics.entity.AllMoney; import com.jero.statistics.entity.AllMoney;
@@ -137,6 +133,8 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
IPayCommonProjectService payCommonProjectService; IPayCommonProjectService payCommonProjectService;
@Resource @Resource
private PayContactsManagementMapper payContactsManagementMapper; private PayContactsManagementMapper payContactsManagementMapper;
@Resource
private AnnualDataLockingService annualDataLockingService;
private static final String DATE_FORMAT = "yyyy-MM-dd"; private static final String DATE_FORMAT = "yyyy-MM-dd";
@@ -168,6 +166,8 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
List<PayWorkingGroupSubItemContacts> pwg = payWorkingGroupSubItemContactsList.stream().filter(p -> Objects.equals(p.getWorkingGroupSubId(), workingGroupSubItem.getId())).collect(Collectors.toList()); List<PayWorkingGroupSubItemContacts> pwg = payWorkingGroupSubItemContactsList.stream().filter(p -> Objects.equals(p.getWorkingGroupSubId(), workingGroupSubItem.getId())).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(pwg)) { if (!CollectionUtils.isEmpty(pwg)) {
pwg.sort(Comparator.comparing(PayWorkingGroupSubItemContacts::getOrderNum)); 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.setContactsTemporaryNameOne(pwg.get(0).getContactsTemporaryName());
workingGroupSubItem.setPayWorkingGroupSubItemContactsList(pwg); workingGroupSubItem.setPayWorkingGroupSubItemContactsList(pwg);
} else { } else {
@@ -216,7 +216,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
if (Objects.isNull(payWorkingGroup)) { if (Objects.isNull(payWorkingGroup)) {
throw new JeroBootException("工作组不存在!"); throw new JeroBootException("工作组不存在!");
} }
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
try { try {
// 编辑保存前再次校验来款项目是否存在 // 编辑保存前再次校验来款项目是否存在
LambdaQueryWrapper<PayWorkingGroupSubItem> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayWorkingGroupSubItem> queryWrapper = new LambdaQueryWrapper<>();
@@ -234,13 +236,15 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
if (!Objects.isNull(payWorkingGroupSubItem.getReceivableAmount()) && payWorkingGroupSubItem.getReceivableAmount().compareTo(new BigDecimal("0")) > 0) { if (!Objects.isNull(payWorkingGroupSubItem.getReceivableAmount()) && payWorkingGroupSubItem.getReceivableAmount().compareTo(new BigDecimal("0")) > 0) {
payWorkingGroupSubItem.setPaymentStatus(PayProjectCommon.PAYMENT_STATUS); payWorkingGroupSubItem.setPaymentStatus(PayProjectCommon.PAYMENT_STATUS);
} }
setPayWorkingGroupSubItemAdd(payWorkingGroupSubItem); setPayWorkingGroupSubItemAdd(payWorkingGroupSubItem, annualDataLocking);
payWorkingGroupSubItem.setPack(PayProjectCommon.PACKAGING0); payWorkingGroupSubItem.setPack(PayProjectCommon.PACKAGING0);
payWorkingGroupSubItem.setInAccount(PayProjectCommon.IN_ACCOUNT0); payWorkingGroupSubItem.setInAccount(PayProjectCommon.IN_ACCOUNT0);
payWorkingGroupSubItem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0); payWorkingGroupSubItem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
payWorkingGroupSubItem.setMail(PayProjectCommon.MAIL0); payWorkingGroupSubItem.setMail(PayProjectCommon.MAIL0);
payWorkingGroupSubItem.setChargeUse(PayProjectCommon.CHARGE_USE1); payWorkingGroupSubItem.setChargeUse(PayProjectCommon.CHARGE_USE1);
payWorkingGroupSubItem.setAffirmIncome(PayProjectCommon.AFFIRM_INCOME0); payWorkingGroupSubItem.setAffirmIncome(PayProjectCommon.AFFIRM_INCOME0);
payWorkingGroupSubItem.setCheckPaymentStatus(PayProjectCommon.NOT_CHECK_PAY_MENT);
payWorkingGroupSubItem.setConfirmVoucher(PayProjectCommon.NOT_CONFIRM_VOUCHER);
payWorkingGroupSubItemService.save(payWorkingGroupSubItem); payWorkingGroupSubItemService.save(payWorkingGroupSubItem);
List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList(); List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList();
// 添加联系人表 // 添加联系人表
@@ -336,6 +340,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
&& !Objects.equals(payWorkingGroup.getPrincipalIdB(), sysUser.getId())) { && !Objects.equals(payWorkingGroup.getPrincipalIdB(), sysUser.getId())) {
throw new JeroBootException("工作组成员不可操作!"); throw new JeroBootException("工作组成员不可操作!");
} }
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
// 项目为打包状态 || 到账!=0 || 开票!=0 || 邮寄!=0 // 项目为打包状态 || 到账!=0 || 开票!=0 || 邮寄!=0
if (!Objects.equals(payWorkingGroupSubItem.getChargeCompanyId(), payWorkingGroupSubItemOld.getChargeCompanyId()) if (!Objects.equals(payWorkingGroupSubItem.getChargeCompanyId(), payWorkingGroupSubItemOld.getChargeCompanyId())
&& (Objects.equals(payWorkingGroupSubItem.getPack(), PayProjectCommon.PACKAGING1) && (Objects.equals(payWorkingGroupSubItem.getPack(), PayProjectCommon.PACKAGING1)
@@ -414,7 +421,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)) { if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)) {
payWorkingGroupSubItemOld.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts); payWorkingGroupSubItemOld.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts);
} }
setPayWorkingGroupSubItemEdit(payWorkingGroupSubItem, payWorkingGroupSubItemOld); setPayWorkingGroupSubItemEdit(payWorkingGroupSubItem, payWorkingGroupSubItemOld, annualDataLocking);
List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList(); List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList();
// 添加联系人表 // 添加联系人表
if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContactsNew)) { if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContactsNew)) {
@@ -439,17 +446,19 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
payWorkingGroupSubItem.setMail(projectStatusVO.getMail()); payWorkingGroupSubItem.setMail(projectStatusVO.getMail());
} }
} }
String paymentStatus = payPaymentCheckService.getPaymentStatus(payWorkingGroupSubItem.getReceivableAmount(), payWorkingGroupSubItemOld.getPaidAmount(), payWorkingGroupSubItemOld.getPaymentStatus()); String paymentStatus = payPaymentCheckService.getPaymentStatus(payWorkingGroupSubItem.getReceivableAmount(), payWorkingGroupSubItemOld.getPaidAmount(), payWorkingGroupSubItemOld.getPaymentStatus(), false);
payWorkingGroupSubItem.setPaymentStatus(paymentStatus); payWorkingGroupSubItem.setPaymentStatus(paymentStatus);
payWorkingGroupSubItem.setInAccount(null); payWorkingGroupSubItem.setInAccount(null);
payWorkingGroupSubItem.setPaidAmount(null); payWorkingGroupSubItem.setPaidAmount(null);
BigDecimal taxRate = payWorkingGroupSubItem.getTaxRate(); BigDecimal taxRate = payWorkingGroupSubItem.getTaxRate();
BigDecimal receivableAmount = payWorkingGroupSubItem.getReceivableAmount(); BigDecimal receivableAmount = payWorkingGroupSubItem.getReceivableAmount();
if (!Objects.isNull(taxRate)) {
BigDecimal noTaxAmount = receivableAmount.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP); BigDecimal noTaxAmount = receivableAmount.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
BigDecimal tax = receivableAmount.subtract(noTaxAmount); BigDecimal tax = receivableAmount.subtract(noTaxAmount);
payWorkingGroupSubItem.setNoTaxAmount(noTaxAmount); payWorkingGroupSubItem.setNoTaxAmount(noTaxAmount);
payWorkingGroupSubItem.setTax(tax); payWorkingGroupSubItem.setTax(tax);
}
payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem); payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem);
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId, workingGroupSubItemId); updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId, workingGroupSubItemId);
@@ -587,7 +596,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)) { if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)) {
payWorkingGroupSubItemOld.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts); payWorkingGroupSubItemOld.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts);
} }
setPayWorkingGroupSubItemEdit(payWorkingGroupSubItem, payWorkingGroupSubItemOld); //判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payWorkingGroup.getYear());
setPayWorkingGroupSubItemEdit(payWorkingGroupSubItem, payWorkingGroupSubItemOld, annualDataLocking);
List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList(); List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList();
// 添加联系人表 // 添加联系人表
if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContactsNew)) { if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContactsNew)) {
@@ -612,7 +623,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
payWorkingGroupSubItem.setMail(projectStatusVO.getMail()); payWorkingGroupSubItem.setMail(projectStatusVO.getMail());
} }
} }
String paymentStatus = payPaymentCheckService.getPaymentStatus(payWorkingGroupSubItem.getReceivableAmount(), payWorkingGroupSubItemOld.getPaidAmount(), payWorkingGroupSubItemOld.getPaymentStatus()); String paymentStatus = payPaymentCheckService.getPaymentStatus(payWorkingGroupSubItem.getReceivableAmount(), payWorkingGroupSubItemOld.getPaidAmount(), payWorkingGroupSubItemOld.getPaymentStatus(), false);
payWorkingGroupSubItem.setPaymentStatus(paymentStatus); payWorkingGroupSubItem.setPaymentStatus(paymentStatus);
payWorkingGroupSubItem.setInAccount(null); payWorkingGroupSubItem.setInAccount(null);
payWorkingGroupSubItem.setPaidAmount(null); payWorkingGroupSubItem.setPaidAmount(null);
@@ -664,6 +675,15 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
if (StringUtils.isBlank(workGroupId)) { if (StringUtils.isBlank(workGroupId)) {
throw new JeroBootException("工作组id不能为空 !"); throw new JeroBootException("工作组id不能为空 !");
} }
// 获取工作组信息
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(workGroupId);
if (Objects.isNull(payWorkingGroup)) {
throw new JeroBootException("工作组不存在 !");
}
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
StringBuilder msg = new StringBuilder(); StringBuilder msg = new StringBuilder();
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
@@ -763,11 +783,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
// if(CollectionUtils.isEmpty(listContactsInfo)){ // if(CollectionUtils.isEmpty(listContactsInfo)){
// msg.append("excel中联系人不存在 !"); // msg.append("excel中联系人不存在 !");
// } // }
// 获取工作组信息
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(workGroupId);
if (Objects.isNull(payWorkingGroup)) {
msg.append("工作组不存在 !");
}
if (StringUtils.isBlank(msg)) { if (StringUtils.isBlank(msg)) {
// 校验预估到账日期 // 校验预估到账日期
@@ -782,7 +798,8 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
msg.append("第").append(list.indexOf(p) + 3).append("行预估到账日期不能为空,请修改。<br/>"); msg.append("第").append(list.indexOf(p) + 3).append("行预估到账日期不能为空,请修改。<br/>");
} else { } else {
try { 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) { } catch (Exception e) {
msg.append("第").append(list.indexOf(p) + 3).append("行预估到账日期格式不正确,请修改。<br/>"); msg.append("第").append(list.indexOf(p) + 3).append("行预估到账日期格式不正确,请修改。<br/>");
} }
@@ -893,8 +910,11 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
} }
}); });
if (StringUtils.isBlank(msg)) { if (StringUtils.isBlank(msg)) {
// 拷贝企业,联系人 // 拷贝企业,联系人
list.forEach(this::setPayWorkingGroupSubItemAdd); for (PayWorkingGroupSubItem payWorkingGroupSubItem : list) {
setPayWorkingGroupSubItemAdd(payWorkingGroupSubItem, annualDataLocking);
}
// 更新数据 // 更新数据
payWorkingGroupSubItemService.saveBatch(list); payWorkingGroupSubItemService.saveBatch(list);
list.forEach(p -> { list.forEach(p -> {
@@ -1157,7 +1177,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getMail, projectStatusVO.getMail()); updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getMail, projectStatusVO.getMail());
} }
} }
String paymentStatus = payPaymentCheckService.getPaymentStatus(input.getReceivableAmount(), p.getPaidAmount(), p.getPaymentStatus()); String paymentStatus = payPaymentCheckService.getPaymentStatus(input.getReceivableAmount(), p.getPaidAmount(), p.getPaymentStatus(), false);
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getPaymentStatus, paymentStatus); updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getPaymentStatus, paymentStatus);
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId, p.getId()); updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId, p.getId());
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeWay, PayProjectCommon.CHARGE_WAY3); updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeWay, PayProjectCommon.CHARGE_WAY3);
@@ -1376,6 +1396,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
&& !Objects.equals(payWorkingGroup.getPrincipalIdB(), sysUser.getId())) { && !Objects.equals(payWorkingGroup.getPrincipalIdB(), sysUser.getId())) {
throw new JeroBootException("工作组成员不可操作!"); throw new JeroBootException("工作组成员不可操作!");
} }
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
// 校验项目是否已关联合同 抛异常 // 校验项目是否已关联合同 抛异常
payIncomeContractService.getPayIncomeContractAssociated(Collections.singletonList(payWorkingGroupSubItem.getId())); payIncomeContractService.getPayIncomeContractAssociated(Collections.singletonList(payWorkingGroupSubItem.getId()));
// 如果已打报,同步删除打包关联 // 如果已打报,同步删除打包关联
@@ -1383,10 +1406,10 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
update.eq(PayPackCompanyProject::getProjectId, payWorkingGroupSubItem.getId()); update.eq(PayPackCompanyProject::getProjectId, payWorkingGroupSubItem.getId());
payPackCompanyProjectService.remove(update); payPackCompanyProjectService.remove(update);
// 删除企业联系人临时数据 // 删除企业联系人临时数据
payCompanyManagementTemporaryService.removeById(payWorkingGroupSubItem.getChargeCompanyTemporaryId()); //payCompanyManagementTemporaryService.removeById(payWorkingGroupSubItem.getChargeCompanyTemporaryId());
List<PayWorkingGroupSubItemContacts> subItemContacts = payWorkingGroupSubItemContactsMapper.getSubItemContacts(id); List<PayWorkingGroupSubItemContacts> subItemContacts = payWorkingGroupSubItemContactsMapper.getSubItemContacts(id);
List<String> temporaryIds = subItemContacts.stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList()); List<String> temporaryIds = subItemContacts.stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
payContactsManagementTemporaryService.removeByIds(temporaryIds); // paycontactsManagementTemporaryService.removeByIds(temporaryIds);
} }
/** /**
@@ -1397,9 +1420,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
* @Return * @Return
* @Exception * @Exception
*/ */
private void setPayWorkingGroupSubItemAdd(PayWorkingGroupSubItem payWorkingGroupSubItem) { private void setPayWorkingGroupSubItemAdd(PayWorkingGroupSubItem payWorkingGroupSubItem, AnnualDataLocking annualDataLocking) {
// 企业 // 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payWorkingGroupSubItem.getChargeCompanyId()); PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payWorkingGroupSubItem.getChargeCompanyId(), annualDataLocking);
if (Objects.isNull(chargeCompanyName)) { if (Objects.isNull(chargeCompanyName)) {
throw new JeroBootException("企业名称为空!"); throw new JeroBootException("企业名称为空!");
} }
@@ -1409,7 +1432,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
if (!CollectionUtils.isEmpty(payWorkingGroupSubItemContactsList)) { if (!CollectionUtils.isEmpty(payWorkingGroupSubItemContactsList)) {
for (int i = 0; i < payWorkingGroupSubItemContactsList.size(); i++) { for (int i = 0; i < payWorkingGroupSubItemContactsList.size(); i++) {
// 企业联系人 // 企业联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItemContactsList.get(i).getContactsId()); PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItemContactsList.get(i).getContactsId(), annualDataLocking);
if (Objects.isNull(contactsName)) { if (Objects.isNull(contactsName)) {
throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!"); throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!");
} }
@@ -1418,7 +1441,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
} }
} }
// 邮寄联系人 // 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItem.getMailContactsId()); PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItem.getMailContactsId(), annualDataLocking);
if (Objects.isNull(mailContactsName)) { if (Objects.isNull(mailContactsName)) {
throw new JeroBootException("邮寄联系人名称为空!"); throw new JeroBootException("邮寄联系人名称为空!");
} }
@@ -1434,16 +1457,16 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
* @Return * @Return
* @Exception * @Exception
*/ */
private void setPayWorkingGroupSubItemEdit(PayWorkingGroupSubItem payWorkingGroupSubItem, PayWorkingGroupSubItem payWorkingGroupSubItemOld) { private void setPayWorkingGroupSubItemEdit(PayWorkingGroupSubItem payWorkingGroupSubItem, PayWorkingGroupSubItem payWorkingGroupSubItemOld, AnnualDataLocking annualDataLocking) {
if (!Objects.equals(payWorkingGroupSubItemOld.getChargeCompanyTemporaryId(), payWorkingGroupSubItem.getChargeCompanyId())) { if (!Objects.equals(payWorkingGroupSubItemOld.getChargeCompanyTemporaryId(), payWorkingGroupSubItem.getChargeCompanyId())) {
// 企业 // 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payWorkingGroupSubItem.getChargeCompanyId()); PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payWorkingGroupSubItem.getChargeCompanyId(), annualDataLocking);
if (Objects.isNull(chargeCompanyName)) { if (Objects.isNull(chargeCompanyName)) {
throw new JeroBootException("企业名称为空!"); throw new JeroBootException("企业名称为空!");
} }
payWorkingGroupSubItem.setChargeCompanyTemporaryId(chargeCompanyName.getId()); payWorkingGroupSubItem.setChargeCompanyTemporaryId(chargeCompanyName.getId());
payWorkingGroupSubItem.setChargeCompanyTemporaryName(chargeCompanyName.getCompanyName()); payWorkingGroupSubItem.setChargeCompanyTemporaryName(chargeCompanyName.getCompanyName());
payCompanyManagementTemporaryService.removeById(payWorkingGroupSubItemOld.getChargeCompanyTemporaryId()); //payCompanyManagementTemporaryService.removeById(payWorkingGroupSubItemOld.getChargeCompanyTemporaryId());
} else { } else {
payWorkingGroupSubItem.setChargeCompanyId(payWorkingGroupSubItemOld.getChargeCompanyId()); payWorkingGroupSubItem.setChargeCompanyId(payWorkingGroupSubItemOld.getChargeCompanyId());
} }
@@ -1453,7 +1476,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
// 删除临时表历史记录 // 删除临时表历史记录
if (!CollectionUtils.isEmpty(payWorkingGroupSubItemOld.getPayWorkingGroupSubItemContactsList())) { if (!CollectionUtils.isEmpty(payWorkingGroupSubItemOld.getPayWorkingGroupSubItemContactsList())) {
List<String> list = payWorkingGroupSubItemOld.getPayWorkingGroupSubItemContactsList().stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList()); List<String> list = payWorkingGroupSubItemOld.getPayWorkingGroupSubItemContactsList().stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
payContactsManagementTemporaryService.removeByIds(list); // paycontactsManagementTemporaryService.removeByIds(list);
} }
// 删除联系人记录 // 删除联系人记录
LambdaUpdateWrapper<PayWorkingGroupSubItemContacts> updatePayWorkingGroupSubItemContacts = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PayWorkingGroupSubItemContacts> updatePayWorkingGroupSubItemContacts = new LambdaUpdateWrapper<>();
@@ -1462,7 +1485,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
// 新增 // 新增
for (int i = 0; i < payWorkingGroupSubItemContactsList.size(); i++) { for (int i = 0; i < payWorkingGroupSubItemContactsList.size(); i++) {
// 企业联系人 // 企业联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItemContactsList.get(i).getContactsId()); PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItemContactsList.get(i).getContactsId(), annualDataLocking);
if (Objects.isNull(contactsName)) { if (Objects.isNull(contactsName)) {
throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!"); throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!");
} }
@@ -1472,15 +1495,28 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
} }
if (!Objects.equals(payWorkingGroupSubItemOld.getMailContactsTemporaryId(), payWorkingGroupSubItem.getMailContactsId())) { if (!Objects.equals(payWorkingGroupSubItemOld.getMailContactsTemporaryId(), payWorkingGroupSubItem.getMailContactsId())) {
// 邮寄联系人 // 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItem.getMailContactsId()); PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItem.getMailContactsId(), annualDataLocking);
if (Objects.isNull(mailContactsName)) { if (Objects.isNull(mailContactsName)) {
throw new JeroBootException("邮寄联系人名称为空!"); throw new JeroBootException("邮寄联系人名称为空!");
} }
payWorkingGroupSubItem.setMailContactsTemporaryId(mailContactsName.getId()); payWorkingGroupSubItem.setMailContactsTemporaryId(mailContactsName.getId());
payWorkingGroupSubItem.setMailContactsTemporaryName(mailContactsName.getName()); payWorkingGroupSubItem.setMailContactsTemporaryName(mailContactsName.getName());
payContactsManagementTemporaryService.removeById(payWorkingGroupSubItemOld.getMailContactsTemporaryId()); // payContactsManagementTemporaryService.removeById(payWorkingGroupSubItemOld.getMailContactsTemporaryId());
} else { } else {
payWorkingGroupSubItem.setMailContactsId(payWorkingGroupSubItemOld.getMailContactsId()); payWorkingGroupSubItem.setMailContactsId(payWorkingGroupSubItemOld.getMailContactsId());
} }
} }
/**
* 确认凭证
*
* @param id
*/
@Override
public void confirmVoucher(String id) {
LambdaUpdateWrapper<PayWorkingGroupSubItem> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(PayWorkingGroupSubItem::getId, id);
updateWrapper.set(PayWorkingGroupSubItem::getConfirmVoucher, PayProjectCommon.IS_CONFIRM_VOUCHER);
payWorkingGroupSubItemMapper.update(null, updateWrapper);
}
} }
@@ -74,7 +74,7 @@ public class AllProjectMoneyStatisticsController {
BigDecimal billMoney = BigDecimal.ZERO; BigDecimal billMoney = BigDecimal.ZERO;
BigDecimal confirmAmount = BigDecimal.ZERO; BigDecimal confirmAmount = BigDecimal.ZERO;
for (AllProjectStatistics item : list) { for (AllProjectStatistics item : list) {
BigDecimal allMoney1 = new BigDecimal(item.getAllMoney()); BigDecimal allMoney1 = new BigDecimal(item.getEstimatedArrivalMoney());
allMoney = allMoney.add(allMoney1); allMoney = allMoney.add(allMoney1);
BigDecimal comeAllMoney1 = new BigDecimal(item.getComeAllMoney()); BigDecimal comeAllMoney1 = new BigDecimal(item.getComeAllMoney());
comeAllMoney = comeAllMoney.add(comeAllMoney1); comeAllMoney = comeAllMoney.add(comeAllMoney1);
@@ -105,6 +105,6 @@ public class AllProjectMoneyStatisticsController {
public ModelAndView excel(AllProjectStatisticsSearch allProjectStatisticsSearch, public ModelAndView excel(AllProjectStatisticsSearch allProjectStatisticsSearch,
@RequestParam(name = "selections", required = false) String selections) { @RequestParam(name = "selections", required = false) String selections) {
List<AllProjectMoneyExcel> list = payWorkingGroupService.queryListAllProjectMoneyExcel(allProjectStatisticsSearch, null); List<AllProjectMoneyExcel> list = payWorkingGroupService.queryListAllProjectMoneyExcel(allProjectStatisticsSearch, null);
return AmountUtil.exportListXls(list, AllProjectMoneyExcel.class, "收入统计"); return AmountUtil.exportListXls(list, AllProjectMoneyExcel.class, "全所收入统计");
} }
} }
@@ -6,12 +6,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog; 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.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.oConvertUtils; import com.jero.common.util.oConvertUtils;
import com.jero.mail.commont.constant; import com.jero.mail.commont.constant;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper; 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.ISysDepartService;
import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.ISysUserService;
import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupService;
@@ -21,6 +23,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -82,10 +85,10 @@ public class AllProjectStatisticsController {
//处理为空数据为0 //处理为空数据为0
for (AllProjectStatistics s : pageList.getRecords()) { for (AllProjectStatistics s : pageList.getRecords()) {
if (s.getAllMoney() == null || s.getAllMoney().equals("")) { if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
s.setAllMoney("0.00"); s.setAllMoney(CommonConstant.ZERO);
} }
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) { if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
s.setComeAllMoney("0.00"); s.setComeAllMoney(CommonConstant.ZERO);
} }
} }
@@ -151,10 +154,10 @@ public class AllProjectStatisticsController {
//处理为空数据为0 //处理为空数据为0
for (AllProjectStatistics s : pageList.getRecords()) { for (AllProjectStatistics s : pageList.getRecords()) {
if (s.getAllMoney() == null || s.getAllMoney().equals("")) { if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
s.setAllMoney("0.00"); s.setAllMoney(CommonConstant.ZERO);
} }
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) { 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") @RequiresPermissions("wholeInstituteStatistics:export")
@AutoLog(value = "全所统计导出-导出统计") @AutoLog(value = "全所统计-导出统计")
@GetMapping(value = "/statistics/excel") @GetMapping(value = "/statistics/excel")
@ApiOperation(value = "全所统计导出-导出统计", notes = "全所统计导出-导出统计") @ApiOperation(value = "全所统计-导出统计", notes = "全所统计导出-导出统计")
public ModelAndView excel(AllProjectStatisticsSearch allProjectStatisticsSearch, public ModelAndView excel(AllProjectStatisticsSearch allProjectStatisticsSearch,
@RequestParam(name = "selections", required = false) String selections) { @RequestParam(name = "selections", required = false) String selections) {
allProjectStatisticsSearch.setProjectName(oConvertUtils.replaceAllPercent(allProjectStatisticsSearch.getProjectName())); allProjectStatisticsSearch.setProjectName(oConvertUtils.replaceAllPercent(allProjectStatisticsSearch.getProjectName()));
@@ -193,16 +196,26 @@ public class AllProjectStatisticsController {
String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key); String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key);
s.setChargeUse_text(payment_charge_use); s.setChargeUse_text(payment_charge_use);
//处理为空数据为0 //处理为空数据为0
if (s.getAllMoney() == null || s.getAllMoney().equals("")) { String allMoney = s.getAllMoney();
s.setAllMoney("0.00"); if (StringUtils.isBlank(allMoney)) {
s.setAllMoney(CommonConstant.ZERO);
} }
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) { String comeAllMoney = s.getComeAllMoney();
s.setComeAllMoney("0.00"); 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, "科室统计"); return AmountUtil.exportListXls(objects, AllProjectStatistics.class, "科室统计");
} }
List<AllProjectStatistics> pageList = payWorkingGroupService.queryPageListExcel(allProjectStatisticsSearch, idList); List<AllProjectStatistics> pageList = payWorkingGroupService.queryPageListExcelForProject(allProjectStatisticsSearch, idList);
if (pageList != null) { if (pageList != null) {
for (AllProjectStatistics s : pageList) { for (AllProjectStatistics s : pageList) {
String key = String.valueOf(s.getChargeUse()); String key = String.valueOf(s.getChargeUse());
String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key); String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key);
s.setChargeUse_text(payment_charge_use); s.setChargeUse_text(payment_charge_use);
//处理为空数据为0 //处理为空数据为0
if (s.getAllMoney() == null || s.getAllMoney().equals("")) { String allMoney = s.getAllMoney();
s.setAllMoney("0.00"); if (StringUtils.isBlank(allMoney)) {
s.setAllMoney(CommonConstant.ZERO);
} }
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) { String comeAllMoney = s.getComeAllMoney();
s.setComeAllMoney("0.00"); 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("org_code", departCode);
queryWrapper.eq("del_flag", 0); queryWrapper.eq("del_flag", 0);
queryWrapper.eq("status", 1); queryWrapper.eq("status", 1);
List<SysUser> pageList = sysUserService.list(queryWrapper); List<SysUser> sysUserSysDepartModels = sysUserService.listUserByOrgCode(departCode);
return Result.OK(pageList); return Result.OK(sysUserSysDepartModels);
} }
/** /**
@@ -304,11 +327,22 @@ public class AllProjectStatisticsController {
HashMap<String, Object> hashMap = new HashMap<>(); HashMap<String, Object> hashMap = new HashMap<>();
//处理为空数据为0 //处理为空数据为0
for (DepartStatistics s : pageList.getRecords()) { for (DepartStatistics s : pageList.getRecords()) {
if (s.getAllMoney() == null || s.getAllMoney().equals("")) { //处理为空数据为0
s.setAllMoney("0.00"); String allMoney = s.getAllMoney();
if (StringUtils.isBlank(allMoney)) {
s.setAllMoney(CommonConstant.ZERO);
} }
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) { String comeAllMoney = s.getComeAllMoney();
s.setComeAllMoney("0.00"); 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<DepartStatistics> list = payWorkingGroupService.queryPageListDepartmentExcel(departStatisticsSearch, idList); List<DepartStatistics> list = payWorkingGroupService.queryPageListDepartmentExcel(departStatisticsSearch, idList);
//处理为空数据为0 //处理为空数据为0
for (DepartStatistics s : list) { for (DepartStatistics s : list) {
if (s.getAllMoney() == null || s.getAllMoney().equals("")) { //处理为空数据为0
s.setAllMoney("0.00"); String allMoney = s.getAllMoney();
if (StringUtils.isBlank(allMoney)) {
s.setAllMoney(CommonConstant.ZERO);
} }
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) { String comeAllMoney = s.getComeAllMoney();
s.setComeAllMoney("0.00"); 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, "科室总体统计"); return AmountUtil.exportListXls(list, DepartStatistics.class, "科室总体统计");
@@ -1,16 +1,22 @@
package com.jero.statistics.controller; package com.jero.statistics.controller;
import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; 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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog; 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.api.ISysBaseAPI;
import com.jero.common.system.vo.DictModel;
import com.jero.common.util.SpringContextUtils;
import com.jero.common.util.oConvertUtils; import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayCompanyManagement; import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.service.IPayCompanyManagementService; import com.jero.company.service.IPayCompanyManagementService;
import com.jero.config.StaticConfig;
import com.jero.modules.system.mapper.SysUserMapper; import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupService;
import com.jero.statistics.entity.*; import com.jero.statistics.entity.*;
@@ -20,8 +26,13 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.shiro.authz.annotation.RequiresPermissions; 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.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; 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 org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource; 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.text.DecimalFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import static cn.hutool.poi.excel.sax.AttributeName.s;
/** /**
* @author zql * @author zql
@@ -49,7 +67,6 @@ public class CompanyComeMoneyStatisticsController {
private IPayWorkingGroupService payWorkingGroupService; private IPayWorkingGroupService payWorkingGroupService;
@Autowired @Autowired
private IPayCompanyManagementService payCompanyManagementService; private IPayCompanyManagementService payCompanyManagementService;
/** /**
* 分页列表查询 * 分页列表查询
* *
@@ -165,14 +182,22 @@ public class CompanyComeMoneyStatisticsController {
List<CompanyComeMoneyList> pageList = payWorkingGroupService.queryPageListForCompanyExcel(companyComeMoneySearch, null); List<CompanyComeMoneyList> pageList = payWorkingGroupService.queryPageListForCompanyExcel(companyComeMoneySearch, null);
//处理为空数据为0 //处理为空数据为0
for (CompanyComeMoneyList s : pageList) { for (CompanyComeMoneyList s : pageList) {
if (s.getAllMoney() == null || s.getAllMoney().equals("")) { //处理为空数据为0
s.setAllMoney("0.00"); String allMoney = s.getAllMoney();
if (StringUtils.isBlank(allMoney)) {
s.setAllMoney(CommonConstant.ZERO);
} }
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) { String comeAllMoney = s.getComeAllMoney();
s.setComeAllMoney("0.00"); if (StringUtils.isBlank(comeAllMoney)) {
s.setComeAllMoney(CommonConstant.ZERO);
} }
if (s.getFinishRate() == null || s.getFinishRate().equals("")) { String confirmAmount = s.getConfirmAmount();
s.setFinishRate("0.00%"); 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, "企业来款统计"); return AmountUtil.exportListXls(pageList, CompanyComeMoneyList.class, "企业来款统计");
@@ -196,22 +221,312 @@ public class CompanyComeMoneyStatisticsController {
String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key); String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key);
s.setChargeUse_text(payment_charge_use); s.setChargeUse_text(payment_charge_use);
//处理为空数据为0 //处理为空数据为0
for (CompanyComeMoneyDetail ss : pageList) { String allMoney = s.getAllMoney();
if (ss.getAllMoney() == null || ss.getAllMoney().equals("")) { if (StringUtils.isBlank(allMoney)) {
ss.setAllMoney("0.00"); s.setAllMoney(CommonConstant.ZERO);
} }
if (ss.getComeAllMoney() == null || ss.getComeAllMoney().equals("")) { String comeAllMoney = s.getComeAllMoney();
ss.setComeAllMoney("0.00"); if (StringUtils.isBlank(comeAllMoney)) {
s.setComeAllMoney(CommonConstant.ZERO);
} }
if (s.getBillMoney() == null || s.getBillMoney().equals("")) { String confirmAmount = s.getConfirmAmount();
s.setBillMoney("0.00"); 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<PayCompanyManagement> wrapper = new LambdaQueryWrapper<>();
List<String> chargeCompanyIds = new ArrayList<>();
CompanyComeMoneySearch allSearch = new CompanyComeMoneySearch();
if (StringUtils.isNotBlank(chargeCompanyId)){
chargeCompanyIds = StrUtil.split(chargeCompanyId, ',');
allSearch.setChargeCompanyIds(chargeCompanyIds);
wrapper.in(PayCompanyManagement::getId,chargeCompanyIds);
}
//获取分页后需要统计的企业
Page<PayCompanyManagement> page = new Page<>(pageNo, pageSize);
Page<PayCompanyManagement> companyManagementPage = payCompanyManagementService.pageHaveMoney(page,chargeCompanyIds);
List<PayCompanyManagement> 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<String> 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<CompanyComeMoneyClassificationList> list = payWorkingGroupService.queryPageListForCompanyClassification(companyComeMoneySearch);
//获取总金额
List<CompanyComeMoneyClassificationList> allMoneyList = payWorkingGroupService.queryPageListForCompanyClassification(allSearch);
//拼接返回值map
Map<String, Object> map = new HashMap<>();
//获取表头
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("payment_charge_use");
List<Map<String, String>> titleList = new ArrayList<>();
//总金额map
Map<String, String> allMap = new HashMap<>();
BigDecimal zero = new BigDecimal("0.00");
for (String s : years) {
Map<String, String> 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<String, String> 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<Map<String, String>> valList = new ArrayList<>();
//先按企业id分组
Map<String, List<CompanyComeMoneyClassificationList>> companyIdKeyMap = CollStreamUtil.groupByKey(list, CompanyComeMoneyClassificationList::getCompanyId);
for (PayCompanyManagement companyManagement : companyManagementList) {
String companyId = companyManagement.getId();
Map<String, String> lm = new HashMap<>();
String companyName = companyManagement.getCompanyName();
lm.put("name", companyName);
//获取单一企业数据
List<CompanyComeMoneyClassificationList> companyDateList = companyIdKeyMap.get(companyId);
//按年份分组
Map<String, List<CompanyComeMoneyClassificationList>> yearKeyMap = CollStreamUtil.groupByKey(companyDateList, CompanyComeMoneyClassificationList::getYear);
for (String yearKey : years) {
//获得单一年数据
List<CompanyComeMoneyClassificationList> 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<CompanyComeMoneyClassificationList> 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<String, List<CompanyComeMoneyClassificationList>> yearKeyMap = CollStreamUtil.groupByKey(allMoneyList, CompanyComeMoneyClassificationList::getYear);
for (String yearKey : years) {
//获得单一年数据
List<CompanyComeMoneyClassificationList> 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<CompanyComeMoneyClassificationList> 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<String> chargeCompanyIds = new ArrayList<>();
CompanyComeMoneySearch allSearch = new CompanyComeMoneySearch();
if (StringUtils.isNotBlank(chargeCompanyId)){
chargeCompanyIds = StrUtil.split(chargeCompanyId, ',');
allSearch.setChargeCompanyIds(chargeCompanyIds);
}
List<PayCompanyManagement> 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<String> 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<String, Object> map = new HashMap<>();
//获取表头
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("payment_charge_use");
List<Map<String, String>> titleList = new ArrayList<>();
for (String s : years) {
Map<String, String> 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<String, String> 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<CompanyComeMoneyClassificationList> list = payWorkingGroupService.queryPageListForCompanyClassification(allSearch);
List<Map<String, String>> valList = new ArrayList<>();
//先按企业id分组
Map<String, List<CompanyComeMoneyClassificationList>> companyIdKeyMap = CollStreamUtil.groupByKey(list, CompanyComeMoneyClassificationList::getCompanyId);
for (PayCompanyManagement companyManagement : companyManagementList) {
String companyId = companyManagement.getId();
Map<String, String> lm = new HashMap<>();
String companyName = companyManagement.getCompanyName();
lm.put("name", companyName);
//获取单一企业数据
List<CompanyComeMoneyClassificationList> companyDateList = companyIdKeyMap.get(companyId);
//按年份分组
Map<String, List<CompanyComeMoneyClassificationList>> yearKeyMap = CollStreamUtil.groupByKey(companyDateList, CompanyComeMoneyClassificationList::getYear);
for (String yearKey : years) {
//获得单一年数据
List<CompanyComeMoneyClassificationList> 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<CompanyComeMoneyClassificationList> 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){
}
}
} }

Some files were not shown because too many files have changed in this diff Show More