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 ('1800701184820961281', '1430376424950026242', '委员会详情', '/organizationalManage/committeeDetail', 'organizationalManage/committeeInfo/CommitteeInfoDetail', NULL, NULL, 1, NULL, '1', 23.00, 0, NULL, 1, 1, 0, 1, NULL, 'LKGLZ', '2024-06-12 09:26:33', 'LKGLZ', '2024-06-12 09:26:44', 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1800698635388772353', '', '委员会', '/organizationalManage/committeeInfo', 'organizationalManage/committeeInfo/CommitteeInfoList', NULL, NULL, 0, NULL, '1', 4.10, 0, 'cus_yinzhang', 1, 0, 0, 0, NULL, 'LKGLZ', '2024-06-12 09:16:25', 'LKGLZ', '2024-06-12 09:16:36', 0, 0, '1', 0, 1);
-- 20240701 财务管理-修改待确收金额
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1806586851988770818', '1435815710331621378', '修改待确收金额', NULL, NULL, NULL, NULL, 2, 'incomePaymentAndInvoiving:editReceivableAmount', '0', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-06-28 15:14:05', NULL, NULL, 0, 0, '1', 0, 1);
-- 20240701 普通项目-新增复制
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1807697397756596226', '1430376521213497345', '复制', '', NULL, NULL, NULL, 2, 'generalProject:copy', '1', 4.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-01 16:47:00', NULL, NULL, 0, 0, '1', 0, 1);
-- 20240701 会员信息统计
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1807709111403286529', '1807708679419334658', '导出', NULL, NULL, NULL, NULL, 2, 'memberStatistic:export', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-01 17:33:32', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1807709030168006657', '1807708679419334658', '查询', NULL, NULL, NULL, NULL, 2, 'memberStatistic:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-01 17:33:13', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1807708679419334658', '1438394322899558402', '会员信息统计', '/incomePayments/memberManage/MemberStatisticList', 'incomePayments/memberManage/MemberStatisticList', NULL, NULL, 1, NULL, '1', 8.11, 0, NULL, 1, 0, 0, 0, NULL, 'LKGLZ', '2024-07-01 17:31:49', NULL, NULL, 0, 0, '1', 0, 1);
-- 20240703 工作组-成员单位维护-确认凭证 工作组-全部文件导出
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808440661174550530', '1431167539278086146', '确认凭证', NULL, NULL, NULL, NULL, 2, 'workingGroupMember:confirmVoucher', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-03 18:00:27', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808439808279609346', '1430718058514440194', '全部文件导出', NULL, NULL, NULL, NULL, 2, 'workingGroupProject:exportAllFile', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-03 17:57:04', NULL, NULL, 0, 0, '1', 0, 1);
-- 20240703 工作组、起草组-会议参会情况-批量审核报名信息
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808458564737335298', '1742070808427126785', '批量审核报名信息', '', NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:batchAuditSignUp', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-03 19:11:36', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808458432167968769', '1443462660843458561', '批量审核报名信息', NULL, NULL, NULL, NULL, 2, 'workGroupMeetingSituation:batchAuditSignUp', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-03 19:11:04', NULL, NULL, 0, 0, '1', 0, 1);
-- 20240704 会议参会情况-编辑打包前金额
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808714130038607873', '1443470901166039042', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'standardsMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 12:07:08', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808713535055613954', '1443461591480487938', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'committeeMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 12:04:46', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808712529420898306', '1744610339198091266', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 12:00:46', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808712332892590081', '1470954992463327234', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'councilMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 11:59:59', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808712185471193089', '1803335479314161665', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'overseasMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 11:59:24', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808711899306414081', '1443460205023940610', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'otherMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 11:58:16', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808711775985487874', '1433322232030777345', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'internalMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 11:57:46', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808711651183972353', '1443462660843458561', '编辑打包前金额', NULL, NULL, NULL, NULL, 2, 'workGroupMeetingSituation:editBeforePackMoney', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 11:57:17', NULL, NULL, 0, 0, '1', 0, 1);
-- 20240704 会议酒店推荐 相关菜单
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808762081121292290', '1808757213186904065', '下载模板', NULL, NULL, NULL, NULL, 2, 'recommendHotelPage:downTemplate', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 15:17:40', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808761976095920129', '1808757213186904065', '导入', NULL, NULL, NULL, NULL, 2, 'recommendHotelPage:import', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 15:17:15', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808761869799673858', '1808757213186904065', '查询', NULL, NULL, NULL, NULL, 2, 'recommendHotelPage:list', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 15:16:50', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808757213186904065', '1430376424950026242', '会议酒店推荐', '/projectManagement/allMeetingList/RecommendHotelPage', 'projectManagement/RecommendHotelPage', NULL, NULL, 1, NULL, '1', 40.00, 0, NULL, 1, 0, 0, 1, NULL, 'LKGLZ', '2024-07-04 14:58:19', 'LKGLZ', '2024-07-04 14:58:31', 0, 0, '1', 0, 1);
-- 20240704 年度数据锁定
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808786188755947522', '1808784364816715778', '批量删除', NULL, NULL, NULL, NULL, 2, 'annualDataLockingList:batchDel', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 16:53:28', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808786109202583554', '1808784364816715778', '删除', NULL, NULL, NULL, NULL, 2, 'annualDataLockingList:delete', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 16:53:09', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808785934673399809', '1808784364816715778', '新增', NULL, NULL, NULL, NULL, 2, 'annualDataLockingList:add', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 16:52:27', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808785856063754242', '1808784364816715778', '查询', NULL, NULL, NULL, NULL, 2, 'annualDataLockingList:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 16:52:08', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808784364816715778', 'd7d6e2e4e2934f2c9385a623fd98c6f3', '年度数据锁定', '/isystem/annualDataLockingList', 'system/AnnualDataLockingList', NULL, NULL, 1, NULL, '1', 9.00, 0, NULL, 1, 0, 0, 0, NULL, 'LKGLZ', '2024-07-04 16:46:13', NULL, NULL, 0, 0, '1', 0, 1);
-- 20240704 企业分类统计菜单
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808798008250093569', '1808797556947177473', '导出', NULL, NULL, NULL, NULL, 2, 'companyPaymentClassificationStatistics:export', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 17:40:26', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808797925806854146', '1808797556947177473', '查询', NULL, NULL, NULL, NULL, 2, 'companyPaymentClassificationStatistics:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-04 17:40:06', NULL, NULL, 0, 0, '1', 0, 1);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1808797556947177473', '1437320526513905666', '企业来款分类统计', '/statisticalReport/enterprisePaymentStatistics/enterprisePaymentClassificationStatisticsList', 'statisticalReport/enterprisePaymentStatistics/EnterprisePaymentClassificationStatisticsList', NULL, NULL, 1, NULL, '1', 2.10, 0, NULL, 1, 0, 1, 0, NULL, 'LKGLZ', '2024-07-04 17:38:38', NULL, NULL, 0, 0, '1', 0, 0);
-- 20240705 标协会员的视图创建
CREATE VIEW v_member_project_subitem AS
select `t1`.`id` AS `id`,`t1`.`member_no` AS `member_no`,`t1`.`company_name` AS `company_name`,`t1`.`liaison_man_id` AS `liaison_man_id`,
`t1`.`member_status` AS `member_status`,`t1`.`effective_date` AS `effective_date`,`t1`.`invalidation_date` AS `invalidation_date`,
`t1`.`create_time` AS `create_time`,`t1`.`project_id` AS `project_id` from (`tb_member_project_subitem` `t1` join
(select `tb_member_project_subitem`.`company_id` AS `company_id`,max(`tb_member_project_subitem`.`create_time`) AS `max_create_time`
from `tb_member_project_subitem` group by `tb_member_project_subitem`.`company_id`) `t2` on(((`t1`.`company_id` = `t2`.`company_id`)
and (`t1`.`create_time` = `t2`.`max_create_time`)))) where (`t1`.`member_status` is not null);
-- 20240708 工作组成员新增是否审核,是否确认凭证字段
ALTER TABLE `pay_working_group_subitem`
add column check_payment_status tinyint(1) comment '是否审核(1:是,0:否)',
add column confirm_voucher tinyint(1) comment '是否确认凭证(1:是,0:否)';
-- 20240708 工作组表新增自定义排序字段
ALTER TABLE `pay_working_group`
add column sort_no decimal(20, 10) comment '自定义排序顺序';
-- 20240710 新增会议酒店推荐表
DROP TABLE IF EXISTS `pay_meeting_hotel_recommend`;
CREATE TABLE `pay_meeting_hotel_recommend` (
`id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`recommend_people` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '推荐人',
`hotel_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '酒店名称',
`hotel_province` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所在省份',
`hotel_city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所在城市',
`is_hold` tinyint(1) NULL DEFAULT NULL COMMENT '是否举办过标准院会议 1-是 0-否',
`meeting_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '曾举办的会议类型',
`contact` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '酒店联系方式',
`remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
`create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会议酒店推荐表' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;
-- 20240712 导入到标协会员菜单
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1811666066341814274', '1469221945005338626', '导入到标协会员', NULL, NULL, NULL, NULL, 2, 'council:exportToMember', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-12 15:37:04', NULL, NULL, 0, 0, '1', 0, 1);
-- 20240715 会议汇总-会议酒店推荐按钮
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1812785413516914690', '1626061755230580738', '会议酒店推荐', NULL, NULL, NULL, NULL, 2, 'allmeeting:recommendHotel', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-07-15 17:44:57', NULL, NULL, 0, 0, '1', 0, 1);
-- 20240716 处理工作组成员历史数据中的是否确认凭证字段
UPDATE pay_working_group_subitem SET confirm_voucher = 0 WHERE confirm_voucher IS NULL;
-- 20240716 处理工作组成员历史数据中的是否审核字段
UPDATE pay_working_group_subitem SET check_payment_status = 0;
UPDATE pay_working_group_subitem SET check_payment_status = 1 WHERE payment_status = 'completed' OR payment_status = 'rejected';
-- auto-generated definition
create table pay_annual_data_locking
(
id varchar(32) not null comment '主键'
primary key,
year varchar(32) null comment '年份',
create_by varchar(32) null comment '创建人',
create_time datetime null comment '创建时间',
update_by varchar(32) null comment '更新人',
update_time datetime null comment '更新时间'
)
comment '年度数据锁定表';
alter table pay_company_management_temporary comment '企业管理临时表';
alter table pay_contacts_management_temporary comment '联系人管理临时表';
alter table pay_company_management_temporary
add year varchar(4) null comment '数据锁定年份';
alter table pay_contacts_management_temporary
add year varchar(4) null comment '数据锁定年份';
# id
alter table tb_member_project_subitem
add company_temporary_id varchar(50) null comment '企业临时id' after company_id,
add company_contact_temporary_id varchar(50) null comment '企业联系人临时id' after liaison_man_id,
add post_contact_temporary_id varchar(150) null comment '邮寄联系人临时id' after post_contact_id;
# id
alter table pay_pack_company
add mail_contact_temporary_id varchar(150) null comment '邮寄联系人临时id' after mail_contacts_id;
+40 -4
View File
@@ -203,7 +203,7 @@ from (SELECT pwgs.id,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
null as estimatedArrivalDate,
estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
@@ -460,7 +460,7 @@ from (SELECT pwgs.id,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
null as estimatedArrivalDate,
estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
@@ -826,6 +826,7 @@ SELECT
end meeting_costs_b,
p2.meeting_name,
p2.meeting_type,
p2.particular_year as year,
( SELECT DATE_FORMAT( payment_date, '%Y' ) FROM pay_confirm_payment_record p3 WHERE p3.project_id = p1.id LIMIT 1 ) AS payment_year
FROM
pay_meeting_situation p1
@@ -1073,7 +1074,7 @@ from (SELECT pwgs.id,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
null as estimatedArrivalDate,
estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
@@ -1373,7 +1374,7 @@ from (SELECT pwgs.id,
vcpr.no_tax_amount as confirmNoTaxAmount,
liaison_man as contactsName,
vcpr.payment_date as confirmDate,
null as estimatedArrivalDate,
estimated_arrival_date as estimatedArrivalDate,
tmps.create_time as createTime
FROM tb_member_project tmp
left join tb_member_project_subitem tmps on (tmp.id = tmps.project_id)
@@ -1567,6 +1568,40 @@ from (
and (pack = 0 or year < 2024)
group by pwgs.id
union all
SELECT pcp.id,
pcp.id as superId,
pcp.charge_project AS projectName,
pcp.principal_name as principalName,
pcp.charge_company_id AS chargeCompanyId,
pcp.charge_company_temporary_id as chargeCompanyTemporaryId,
pcp.charge_company_temporary_name AS chargeCompanyTemporaryName,
pcp.no_tax_amount as allMoney,
pcp.paid_amount as comeAllMoney,
16 as chargeUse,
sd.depart_name as depart,
pcp.pack as pack,
pcp.year as year,
pcp.in_account as payStatue,
sd.org_code as departCode,
sd.id as departId,
pcp.principal_id as principalNameId,
1 as type,
pcp.invoice_amount AS billMoney,
confirm_amount as confirmAmount,
invoice_no_tax_amount as invoiceNoTaxAmount,
paid_no_tax_amount as paidNoTaxAmount,
confirm_no_tax_amount as confirmNoTaxAmount,
contacts_temporary_name as contactsName,
GROUP_CONCAT(DATE_FORMAT(pcpr.payment_date,'%Y-%m')) as confirmDate,
pcp.create_time as createTime
FROM pay_common_project pcp
left JOIN sys_user su on (pcp.principal_id = su.id)
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on pcp.id = pcpr.project_id
where (pack = 0 or year < 2024)
and charge_way = 2
group by pcp.id
union all
SELECT pcp.id,
pcp.id as superId,
pcp.charge_project AS projectName,
@@ -1598,6 +1633,7 @@ from (
left join sys_depart sd on (su.depart_ids = sd.id)
left join pay_confirm_payment_record pcpr on pcp.id = pcpr.project_id
where (pack = 0 or year < 2024)
and charge_way != 2
group by pcp.id
union all
SELECT pmps.id,
@@ -309,4 +309,6 @@ public interface CommonConstant {
* 第三方登录 验证密码/创建用户 都需要设置一个操作码 防止被恶意调用
*/
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;
}
public static String TEMPLATE_PATH;
@Value("${template.path.templatePath}")
public void setTemplatePath(String templatePath) {
StaticConfig.TEMPLATE_PATH = templatePath;
}
/*@Bean
public void initStatic() {
@@ -140,7 +140,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/sys/oss/file/queryById","anon");//通过id查询文件
filterChainDefinitionMap.put("/meeting/internalMeetingSituation/checkMember","anon");//校验是否为会员单位
filterChainDefinitionMap.put("/meeting/internalMeeting/getLinkTopics","anon");//查询关联会议
filterChainDefinitionMap.put("/company/payCompanyManagement/judgeCompanyIsPackaged","anon");//判断当前企业是否是打包企业
filterChainDefinitionMap.put("/pack/payPackCompany/judgeCompanyIsPackaged","anon");//判断当前企业是否是打包企业
//通过单位名称查询该单位是否可用
filterChainDefinitionMap.put("/member/tbMemberProjectSubitem/enableMemberByCompanyName", "anon");
//门户端-分页查询所有会员名称
@@ -1,18 +1,19 @@
package com.jero.common.mapper;
import com.jero.project.entity.PayCommonProject;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ProjectDetailMapper {
/**
* @Description 查询项目信息
* @Author lqt
* @Date 2021/9/14
* @Param projectId 项目id
* @Return
* @Exception
*/
PayCommonProject queryProject(String projectId);
* @Description 查询项目信息
* @Author lqt
* @Date 2021/9/14
* @Param projectId 项目id
* @Return
* @Exception
*/
PayCommonProject queryProject(@Param("projectId") String projectId);
/**
* @Description 查询项目列表信息
@@ -4,8 +4,41 @@
<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
,c.tax_rate,c.tax,c.no_tax_amount,c.affirm_income
select c.id as id,
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
left join sys_user su on c.principal_id = su.id
<where>
@@ -15,164 +48,365 @@
</where>
<!--工作组项目-->
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
,gsub.tax_rate,gsub.tax,gsub.no_tax_amount,affirm_income
select c.id as id,
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
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>
<if test="projectId != null and projectId != ''">
AND gsub.id = #{projectId}
AND c.id = #{projectId}
</if>
</where>
<!-- 会议项目-->
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,'','','','','',''
,sit.tax_rate,sit.tax,sit.no_tax_amount,affirm_income
select c.id as id,
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
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>
<if test="projectId != null and projectId != ''">
AND sit.id = #{projectId}
AND c.id = #{projectId}
</if>
</where>
<!-- 会员项目-->
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,''
,msub.tax_rate,msub.tax,msub.no_tax_amount,affirm_income
select c.id as id,
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
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>
<if test="projectId != null and projectId != ''">
AND msub.id = #{projectId}
AND c.id = #{projectId}
</if>
</where>
<!-- 标协会员项目-->
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,'',''
,tmsub.tax_rate,tmsub.tax,tmsub.no_tax_amount,affirm_income
select c.id as id,
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
left join sys_user su on tmember.director_id = su.id
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
left join pay_income_contract_associated pica on pica.project_id=tmsub.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=c.id
left join pay_income_contract pic on pica.contract_id = pic.id
<where>
<if test="projectId != null and projectId != ''">
AND tmsub.id = #{projectId}
AND c.id = #{projectId}
</if>
</where>
<!-- 标协会员证书项目-->
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,'',''
,tmps.tax_rate,tmps.tax,tmps.no_tax_amount,affirm_income
select c.id as id,
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
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>
<if test="projectId != null and projectId != ''">
AND tmps.id = #{projectId}
AND c.id = #{projectId}
</if>
</where>
UNION ALL
SELECT
gsub.id,
g.drafting_group_project,
'',
g.principal_id_a,
su.realname,
gsub.contacts_temporary_id_one,
gsub.contacts_temporary_name_one,
gsub.charge_company_temporary_name,
'',
'',
'',
'',
'',
'',
'',
gsub.create_time,
7,
'',
'',
gsub.remarks,
'',
gsub.charge_company_temporary_id,
'',
'',
'',
'',
g.year,
'',
g.mission_and_objectives,
'',
'',
'',
c.id as id,
g.drafting_group_project as charge_project,
'' 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,
'' as receivable_amount,
'' as paid_amount,
'' as need_invoice,
'' as pack,
'' as in_account,
'' as make_invoice,
'' as mail,
c.create_time as create_time,
7 as projectType,
'' as phone,
'' as email,
c.remarks as remarks,
'' as contract_num,
'' as charge_way,
'' as files,
'' as charge_notice_no,
'' as charge_notice_id,
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
pay_drafting_group g
LEFT JOIN
sys_user su ON g.principal_id_a = su.id
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>
<if test="projectId != null and projectId != ''">
AND gsub.id = #{projectId}
AND c.id = #{projectId}
</if>
</where>
<!-- 打包项目-->
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,
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
,ppc.tax_rate,ppc.tax,ppc.no_tax_amount,ppc.income_affirm AS affirm_income
from pay_pack_company ppc
left join sys_user su on ppc.pack_principal_id = su.id
select c.id as id,
c.company_temporary_name AS charge_project,
22 AS charge_use,
c.pack_principal_id as principal_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>
<if test="projectId != null and projectId != ''">
AND ppc.id = #{projectId}
AND c.id = #{projectId}
</if>
</where>
<!-- 功能安全中心项目-->
UNION ALL
SELECT
pfsc.id,
g.project_name,
'',
g.principal_id,
su.realname,
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
g.create_time,
9,
'',
'',
g.remarks,
'',
pfsc.company_id,
'',
'',
'',
'',
'',
'',
g.mission_and_objectives,
'',
'',
'',
pfsc.id as id,
c.project_name as charge_project,
'' as charge_use,
c.principal_id as principal_id,
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,
'' as in_account,
'' as make_invoice,
'' as mail,
c.create_time as create_time,
9 as projectType,
'' as phone,
'' as email,
c.remarks as remarks,
'' as contract_num,
'' as charge_way,
'' as files,
'' as charge_notice_no,
'' as charge_notice_id,
'' 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
pay_functional_safety_center g
LEFT JOIN sys_user su ON g.principal_id = su.id
LEFT JOIN pay_functional_safety_center_subitem pfsc ON g.id = pfsc.project_id
pay_functional_safety_center c
LEFT JOIN sys_user su ON c.principal_id = su.id
LEFT JOIN pay_functional_safety_center_subitem pfsc ON c.id = pfsc.project_id
<where>
<if test="projectId != null and projectId != ''">
AND pfsc.id = #{projectId}
@@ -221,183 +221,148 @@ public class ProjectDetailServiceImpl implements ProjectDetailService {
if(!Objects.isNull(payCommonProject.getPack())){
projectDetailVO.setPack_dictText(sysBaseAPI.translateDict("yn",String.valueOf(payCommonProject.getPack())));
}
// 标协会员和会议,直接查询企业,联系人 加功能安全中心
if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE5)
|| Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE3)
|| Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE9)){
PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(payCommonProject.getChargeCompanyTemporaryId());
if(Objects.isNull(payCompanyManagement)){
throw new JeroBootException("企业不存在!");
}
if(Objects.equals(payCompanyManagement.getStatus(), PayCompanyManagementTemporaryCommon.STATUS2)){
projectDetailVO.setCompanyName(payCompanyManagement.getCompanyName() + PayCompanyManagementTemporaryCommon.CHECK);
}else{
projectDetailVO.setCompanyName(payCompanyManagement.getCompanyName());
}
projectDetailVO.setCompanyPhone(PasswordUtil.decrypt(payCompanyManagement.getCompanyPhone()));
projectDetailVO.setDutyCode(payCompanyManagement.getDutyCode());
projectDetailVO.setBankAccountName(payCompanyManagement.getBankAccountName());
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)){
List<SafetyCenterSubitemContacts> subitemContacts = safetyCenterSubitemContactsService.listBySubitemId(projectId);
List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContacts = new ArrayList<>();
for (SafetyCenterSubitemContacts subitemContact : subitemContacts) {
PayContactsManagement contactsManagement = payContactsManagementService.getById(subitemContact.getContactsId());
PayWorkingGroupSubItemContacts p = new PayWorkingGroupSubItemContacts();
p.setContactsTemporaryName(contactsManagement.getName());
p.setGender(contactsManagement.getGender());
if(!Objects.isNull(contactsManagement.getGender())){
p.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(contactsManagement.getGender())));
}
p.setPost(contactsManagement.getPost());
if(!StringUtils.isBlank(contactsManagement.getPhone())){
p.setPhone(PasswordUtil.decrypt(contactsManagement.getPhone()));
}
if(!StringUtils.isBlank(contactsManagement.getEmail())){
p.setEmail(PasswordUtil.decrypt(contactsManagement.getEmail()));
}
p.setPostalCodeContacts(contactsManagement.getPostalCode());
p.setContactAddress(contactsManagement.getContactAddress());
listPayWorkingGroupSubItemContacts.add(p);
}
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("企业不存在!");
}
String contactsTemporaryId = payCommonProject.getContactsTemporaryId();
String contactsId = payCommonProject.getContactsId();
String chargeCompanyTemporaryId = payCommonProject.getChargeCompanyTemporaryId();
String chargeCompanyId = payCommonProject.getChargeCompanyId();
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());
// 如果企业临时id和企业id相同,就查询企业表否则查询企业临时表
PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getByAllTable(chargeCompanyId,chargeCompanyTemporaryId);
projectDetailVO.setCompanyName(payCompanyManagementTemporary.getCompanyName());
projectDetailVO.setCompanyPhone(PasswordUtil.decrypt(payCompanyManagementTemporary.getCompanyPhone()));
projectDetailVO.setPostalCodeCompany(payCompanyManagementTemporary.getPostalCode());
projectDetailVO.setCompanyAddress(payCompanyManagementTemporary.getCompanyAddress());
projectDetailVO.setDutyCode(payCompanyManagementTemporary.getDutyCode());
projectDetailVO.setBankAccountName(payCompanyManagementTemporary.getBankAccountName());
projectDetailVO.setBankAccount(payCompanyManagementTemporary.getBankAccount());
projectDetailVO.setOpeningBank(payCompanyManagementTemporary.getOpeningBank());
projectDetailVO.setLinkBankNumber(payCompanyManagementTemporary.getLinkBankNumber());
// 工作组 添加企业联系人
if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE2)){
PayWorkingGroupSubItem payWorkingGroupSubItem = payWorkingGroupSubItemService.getById(projectId);
if(Objects.isNull(payWorkingGroupSubItem)){
throw new JeroBootException("项目不存在!");
//功能安全中心添加企业联系人
if (Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE9)){
List<SafetyCenterSubitemContacts> subitemContacts = safetyCenterSubitemContactsService.listBySubitemId(projectId);
List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContacts = new ArrayList<>();
for (SafetyCenterSubitemContacts subitemContact : subitemContacts) {
PayContactsManagement contactsManagement = payContactsManagementService.getById(subitemContact.getContactsId());
PayWorkingGroupSubItemContacts p = new PayWorkingGroupSubItemContacts();
p.setContactsTemporaryName(contactsManagement.getName());
p.setGender(contactsManagement.getGender());
if(!Objects.isNull(contactsManagement.getGender())){
p.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(contactsManagement.getGender())));
}
LambdaQueryWrapper<PayWorkingGroupSubItemContacts> queryPayWorkingGroupSubItemContacts = new LambdaQueryWrapper<>();
queryPayWorkingGroupSubItemContacts.in(PayWorkingGroupSubItemContacts::getWorkingGroupSubId,projectId);
queryPayWorkingGroupSubItemContacts.orderByAsc(PayWorkingGroupSubItemContacts::getOrderNum);
List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContacts = payWorkingGroupSubItemContactsService.list(queryPayWorkingGroupSubItemContacts);
p.setPost(contactsManagement.getPost());
if(!StringUtils.isBlank(contactsManagement.getPhone())){
p.setPhone(PasswordUtil.decrypt(contactsManagement.getPhone()));
}
if(!StringUtils.isBlank(contactsManagement.getEmail())){
p.setEmail(PasswordUtil.decrypt(contactsManagement.getEmail()));
}
p.setPostalCodeContacts(contactsManagement.getPostalCode());
p.setContactAddress(contactsManagement.getContactAddress());
listPayWorkingGroupSubItemContacts.add(p);
}
projectDetailVO.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts);
}
// 工作组 添加企业联系人
else if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE2)){
PayWorkingGroupSubItem payWorkingGroupSubItem = payWorkingGroupSubItemService.getById(projectId);
if(Objects.isNull(payWorkingGroupSubItem)){
throw new JeroBootException("项目不存在!");
}
LambdaQueryWrapper<PayWorkingGroupSubItemContacts> queryPayWorkingGroupSubItemContacts = new LambdaQueryWrapper<>();
queryPayWorkingGroupSubItemContacts.in(PayWorkingGroupSubItemContacts::getWorkingGroupSubId,projectId);
queryPayWorkingGroupSubItemContacts.orderByAsc(PayWorkingGroupSubItemContacts::getOrderNum);
List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContacts = payWorkingGroupSubItemContactsService.list(queryPayWorkingGroupSubItemContacts);
if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)){
//List<String> listIds = listPayWorkingGroupSubItemContacts.stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
//List<PayContactsManagementTemporary> payContactsManagementTemporaryList = payContactsManagementTemporaryService.listByIds(listIds);
if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)){
List<String> listIds = listPayWorkingGroupSubItemContacts.stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
List<PayContactsManagementTemporary> payContactsManagementTemporaryList = payContactsManagementTemporaryService.listByIds(listIds);
if(!CollectionUtils.isEmpty(payContactsManagementTemporaryList)){
listPayWorkingGroupSubItemContacts.forEach(p->{
List<PayContactsManagementTemporary> listNew = payContactsManagementTemporaryList.stream().filter(o->Objects.equals(o.getId(),p.getContactsTemporaryId())).collect(Collectors.toList());
if(CollectionUtils.isEmpty(listNew)){
return;
}
PayContactsManagementTemporary payContactsManagementTemporary = listNew.get(0);
p.setGender(payContactsManagementTemporary.getGender());
if(!Objects.isNull(payContactsManagementTemporary.getGender())){
p.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(payContactsManagementTemporary.getGender())));
}
p.setPost(payContactsManagementTemporary.getPost());
if(!StringUtils.isBlank(payContactsManagementTemporary.getPhone())){
p.setPhone(PasswordUtil.decrypt(payContactsManagementTemporary.getPhone()));
}
if(!StringUtils.isBlank(payContactsManagementTemporary.getEmail())){
p.setEmail(PasswordUtil.decrypt(payContactsManagementTemporary.getEmail()));
}
p.setPostalCodeContacts(payContactsManagementTemporary.getPostalCode());
p.setContactAddress(payContactsManagementTemporary.getContactAddress());
});
projectDetailVO.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts);
}
listPayWorkingGroupSubItemContacts.forEach(p->{
PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getByAllTable(p.getContactsId(),p.getContactsTemporaryId());
if(Objects.isNull(payContactsManagementTemporary)){
throw new JeroBootException("联系人不存在!");
}
p.setGender(payContactsManagementTemporary.getGender());
if(!Objects.isNull(payContactsManagementTemporary.getGender())){
p.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(payContactsManagementTemporary.getGender())));
}
p.setPost(payContactsManagementTemporary.getPost());
if(!StringUtils.isBlank(payContactsManagementTemporary.getPhone())){
p.setPhone(PasswordUtil.decrypt(payContactsManagementTemporary.getPhone()));
}
if(!StringUtils.isBlank(payContactsManagementTemporary.getEmail())){
p.setEmail(PasswordUtil.decrypt(payContactsManagementTemporary.getEmail()));
}
p.setPostalCodeContacts(payContactsManagementTemporary.getPostalCode());
p.setContactAddress(payContactsManagementTemporary.getContactAddress());
});
projectDetailVO.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts);
}
}else if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE7)) {
PayDraftingGroupSubItem payDraftingGroupSubItem = payDraftingGroupSubItemService.getById(projectId);
if(Objects.isNull(payDraftingGroupSubItem)){
throw new JeroBootException("项目不存在!");
}
LambdaQueryWrapper<PayDraftingGroupSubItemContacts> queryPayDraftingGroupSubItemContacts = new LambdaQueryWrapper<>();
queryPayDraftingGroupSubItemContacts.in(PayDraftingGroupSubItemContacts::getDraftingGroupSubId,projectId);
queryPayDraftingGroupSubItemContacts.orderByAsc(PayDraftingGroupSubItemContacts::getOrderNum);
List<PayDraftingGroupSubItemContacts> listPayDraftingGroupSubItemContacts = payDraftingGroupSubItemContactsService.list(queryPayDraftingGroupSubItemContacts);
if(!CollectionUtils.isEmpty(listPayDraftingGroupSubItemContacts)){
List<String> listIds = listPayDraftingGroupSubItemContacts.stream().map(PayDraftingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
List<PayContactsManagementTemporary> payContactsManagementTemporaryList = payContactsManagementTemporaryService.listByIds(listIds);
if(!CollectionUtils.isEmpty(payContactsManagementTemporaryList)){
listPayDraftingGroupSubItemContacts.forEach(p->{
List<PayContactsManagementTemporary> listNew = payContactsManagementTemporaryList.stream().filter(o->Objects.equals(o.getId(),p.getContactsTemporaryId())).collect(Collectors.toList());
if(CollectionUtils.isEmpty(listNew)){
return;
}
PayContactsManagementTemporary payContactsManagementTemporary = listNew.get(0);
p.setGender(payContactsManagementTemporary.getGender());
if(!Objects.isNull(payContactsManagementTemporary.getGender())){
p.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(payContactsManagementTemporary.getGender())));
}
p.setPost(payContactsManagementTemporary.getPost());
if(!StringUtils.isBlank(payContactsManagementTemporary.getPhone())){
p.setPhone(PasswordUtil.decrypt(payContactsManagementTemporary.getPhone()));
}
if(!StringUtils.isBlank(payContactsManagementTemporary.getEmail())){
p.setEmail(PasswordUtil.decrypt(payContactsManagementTemporary.getEmail()));
}
p.setPostalCodeContacts(payContactsManagementTemporary.getPostalCode());
p.setContactAddress(payContactsManagementTemporary.getContactAddress());
});
List<PayWorkingGroupSubItemContacts> payWorkingGroupSubItemContactsList = JSON.parseArray(JSONArray.toJSONString(listPayDraftingGroupSubItemContacts), PayWorkingGroupSubItemContacts.class);
projectDetailVO.setPayWorkingGroupSubItemContactsList(payWorkingGroupSubItemContactsList);
}
}
}else {
PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(payCommonProject.getContactsTemporaryId());
if(Objects.isNull(payContactsManagementTemporary)){
throw new JeroBootException("联系人不存在!");
}
projectDetailVO.setName(payContactsManagementTemporary.getName());
projectDetailVO.setGender(payContactsManagementTemporary.getGender());
if(!Objects.isNull(payContactsManagementTemporary.getGender())){
projectDetailVO.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(payContactsManagementTemporary.getGender())));
}
projectDetailVO.setPost(payContactsManagementTemporary.getPost());
if(!StringUtils.isBlank(payContactsManagementTemporary.getPhone())){
projectDetailVO.setPhone(PasswordUtil.decrypt(payContactsManagementTemporary.getPhone()));
}
if(!StringUtils.isBlank(payContactsManagementTemporary.getEmail())){
projectDetailVO.setEmail(PasswordUtil.decrypt(payContactsManagementTemporary.getEmail()));
}
projectDetailVO.setPostalCodeContacts(payContactsManagementTemporary.getPostalCode());
projectDetailVO.setContactAddress(payContactsManagementTemporary.getContactAddress());
}
}
// 起草组项目
else if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE7)) {
PayDraftingGroupSubItem payDraftingGroupSubItem = payDraftingGroupSubItemService.getById(projectId);
if(Objects.isNull(payDraftingGroupSubItem)){
throw new JeroBootException("项目不存在!");
}
LambdaQueryWrapper<PayDraftingGroupSubItemContacts> queryPayDraftingGroupSubItemContacts = new LambdaQueryWrapper<>();
queryPayDraftingGroupSubItemContacts.in(PayDraftingGroupSubItemContacts::getDraftingGroupSubId,projectId);
queryPayDraftingGroupSubItemContacts.orderByAsc(PayDraftingGroupSubItemContacts::getOrderNum);
List<PayDraftingGroupSubItemContacts> listPayDraftingGroupSubItemContacts = payDraftingGroupSubItemContactsService.list(queryPayDraftingGroupSubItemContacts);
if(!CollectionUtils.isEmpty(listPayDraftingGroupSubItemContacts)){
List<String> listIds = listPayDraftingGroupSubItemContacts.stream().map(PayDraftingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
List<PayContactsManagementTemporary> payContactsManagementTemporaryList = payContactsManagementTemporaryService.listByIds(listIds);
if(!CollectionUtils.isEmpty(payContactsManagementTemporaryList)){
listPayDraftingGroupSubItemContacts.forEach(p->{
List<PayContactsManagementTemporary> listNew = payContactsManagementTemporaryList.stream().filter(o->Objects.equals(o.getId(),p.getContactsTemporaryId())).collect(Collectors.toList());
if(CollectionUtils.isEmpty(listNew)){
return;
}
PayContactsManagementTemporary payContactsManagementTemporary = listNew.get(0);
p.setGender(payContactsManagementTemporary.getGender());
if(!Objects.isNull(payContactsManagementTemporary.getGender())){
p.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(payContactsManagementTemporary.getGender())));
}
p.setPost(payContactsManagementTemporary.getPost());
if(!StringUtils.isBlank(payContactsManagementTemporary.getPhone())){
p.setPhone(PasswordUtil.decrypt(payContactsManagementTemporary.getPhone()));
}
if(!StringUtils.isBlank(payContactsManagementTemporary.getEmail())){
p.setEmail(PasswordUtil.decrypt(payContactsManagementTemporary.getEmail()));
}
p.setPostalCodeContacts(payContactsManagementTemporary.getPostalCode());
p.setContactAddress(payContactsManagementTemporary.getContactAddress());
});
List<PayWorkingGroupSubItemContacts> payWorkingGroupSubItemContactsList = JSON.parseArray(JSONArray.toJSONString(listPayDraftingGroupSubItemContacts), PayWorkingGroupSubItemContacts.class);
projectDetailVO.setPayWorkingGroupSubItemContactsList(payWorkingGroupSubItemContactsList);
}
}
}else {
PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getByAllTable(contactsId,contactsTemporaryId);
if(Objects.isNull(payContactsManagementTemporary)){
throw new JeroBootException("联系人不存在!");
}
projectDetailVO.setName(payContactsManagementTemporary.getName());
projectDetailVO.setGender(payContactsManagementTemporary.getGender());
if(!Objects.isNull(payContactsManagementTemporary.getGender())){
projectDetailVO.setGender_dictText(sysBaseAPI.translateDict("sex",String.valueOf(payContactsManagementTemporary.getGender())));
}
projectDetailVO.setPost(payContactsManagementTemporary.getPost());
if(!StringUtils.isBlank(payContactsManagementTemporary.getPhone())){
projectDetailVO.setPhone(PasswordUtil.decrypt(payContactsManagementTemporary.getPhone()));
}
if(!StringUtils.isBlank(payContactsManagementTemporary.getEmail())){
projectDetailVO.setEmail(PasswordUtil.decrypt(payContactsManagementTemporary.getEmail()));
}
projectDetailVO.setPostalCodeContacts(payContactsManagementTemporary.getPostalCode());
projectDetailVO.setContactAddress(payContactsManagementTemporary.getContactAddress());
}
//会员权益
if(Objects.equals(String.valueOf(payCommonProject.getProjectType()), ProjectCommon.PROJECT_TYPE5)){
TbMemberProjectSubitem takeEffectInfo = tbMemberProjectSubitemService.getTakeEffectInfo(payCommonProject.getChargeCompanyTemporaryId());
TbMemberProjectSubitem takeEffectInfo = tbMemberProjectSubitemService.getTakeEffectInfo(chargeCompanyId);
if (takeEffectInfo != null){
projectDetailVO.setMemberNo(takeEffectInfo.getMemberNo());
projectDetailVO.setEffectiveDate(takeEffectInfo.getEffectiveDate());
@@ -1111,6 +1111,7 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
/**
* 判断当前企业是否是打包企业
*/
@Deprecated
@ApiOperation(value="判断当前企业是否是打包企业")
@GetMapping(value = "/judgeCompanyIsPackaged")
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);
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
${ew.customSqlSegment}
</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>
@@ -127,4 +127,7 @@ public interface IPayCompanyManagementService extends IService<PayCompanyManagem
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.contract.entity.PayIncomeContract;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.mapper.PayPackCompanyMapper;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
@@ -93,7 +101,21 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
private SendMessageService sendMessageService;
@Resource
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
public void addMeeting(PayCompanyManagement payCompanyManagement) {
if(StringUtils.isEmpty(payCompanyManagement.getCompanyPhone())){
@@ -409,23 +431,6 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
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)){
payCompanyManagementOld.setCompanyName(payCompanyManagement.getCompanyName());
@@ -715,6 +720,16 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
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
@@ -749,113 +764,99 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
* @Exception
*/
private void updateBatchData(PayCompanyManagement payCompanyManagement){
String companyManagementId = payCompanyManagement.getId();
//更新人员
LambdaUpdateWrapper<PayContactsManagement> updatePayContactsManagement = new LambdaUpdateWrapper<>();
updatePayContactsManagement.eq(PayContactsManagement::getCompanyId,payCompanyManagement.getId());
updatePayContactsManagement.eq(PayContactsManagement::getCompanyId, companyManagementId);
updatePayContactsManagement.set(PayContactsManagement::getCompanyName,payCompanyManagement.getCompanyName());
payContactsManagementService.update(updatePayContactsManagement);
int thisYear = DateUtil.thisYear();
List<String> allYear = annualDataLockingService.getAllYear();
//需要更新的临时企业id
List<String> companyTemporaryIdList = new ArrayList<>();
// 更新普通项目
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<String> collect = list.stream().map(PayCommonProject::getChargeCompanyTemporaryId).collect(Collectors.toList());
List<String> idList = list.stream().map(PayCommonProject::getId).collect(Collectors.toList());
companyTemporaryIdList.addAll(collect);
if (!collect.isEmpty()){
if (!idList.isEmpty()){
LambdaUpdateWrapper<PayCommonProject> updatePayCommonProject = new LambdaUpdateWrapper<>();
updatePayCommonProject.in(PayCommonProject::getChargeCompanyTemporaryId,collect);
updatePayCommonProject.in(PayCommonProject::getId,idList);
updatePayCommonProject.set(PayCommonProject::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName());
payCommonProjectService.update(updatePayCommonProject);
}
// 更新工作组
QueryWrapper<PayWorkingGroupSubItem> queryPayWorkingGroupSubItem = new QueryWrapper<>();
queryPayWorkingGroupSubItem.eq("pwg.year",thisYear);
queryPayWorkingGroupSubItem.lambda().eq(PayWorkingGroupSubItem::getChargeCompanyId,payCompanyManagement.getId())
.and(
a -> {
a.eq(PayWorkingGroupSubItem::getPaidAmount, BigDecimal.ZERO)
.or()
.isNull(PayWorkingGroupSubItem::getPaidAmount);
})
.and(
a -> {
a.eq(PayWorkingGroupSubItem::getInvoiceAmount, BigDecimal.ZERO)
.or()
.isNull(PayWorkingGroupSubItem::getInvoiceAmount);
})
.and(
a -> {
a.eq(PayWorkingGroupSubItem::getConfirmAmount, BigDecimal.ZERO)
.or()
.isNull(PayWorkingGroupSubItem::getConfirmAmount);
});
queryPayWorkingGroupSubItem.notIn("pwg.year",allYear);
queryPayWorkingGroupSubItem.lambda().eq(PayWorkingGroupSubItem::getChargeCompanyId, companyManagementId);
List<PayWorkingGroupSubItem> workingGroupSubItemList = payWorkingGroupSubItemService.queryList(queryPayWorkingGroupSubItem);
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);
if (!collect1.isEmpty()){
if (!idList1.isEmpty()){
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.in(PayWorkingGroupSubItem::getChargeCompanyId,collect1);
updatePayWorkingGroupSubItem.in(PayWorkingGroupSubItem::getId,idList1);
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeCompanyTemporaryName,payCompanyManagement.getCompanyName());
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<>();
queryPayMemberProjectSubitem.eq("pmp.particular_year",thisYear);
queryPayMemberProjectSubitem.lambda().eq(PayMemberProjectSubitem::getCompanyId,payCompanyManagement.getId())
.and(
a -> {
a.eq(PayMemberProjectSubitem::getPaidAmount, BigDecimal.ZERO)
.or()
.isNull(PayMemberProjectSubitem::getPaidAmount);
})
.and(
a -> {
a.eq(PayMemberProjectSubitem::getInvoiceAmount, BigDecimal.ZERO)
.or()
.isNull(PayMemberProjectSubitem::getInvoiceAmount);
})
.and(
a -> {
a.eq(PayMemberProjectSubitem::getConfirmAmount, BigDecimal.ZERO)
.or()
.isNull(PayMemberProjectSubitem::getConfirmAmount);
});
queryPayMemberProjectSubitem.notIn("pmp.particular_year",allYear) ;
queryPayMemberProjectSubitem.lambda().eq(PayMemberProjectSubitem::getCompanyId, companyManagementId);
List<PayMemberProjectSubitem> payMemberProjectSubitems = memberProjectSubitemService.queryPageListCompany(queryPayMemberProjectSubitem);
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);
if (!collect2.isEmpty()){
if (!idList2.isEmpty()){
LambdaUpdateWrapper<PayMemberProjectSubitem> updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>();
updatePayMemberProjectSubitem.in(PayMemberProjectSubitem::getCompanyId,payCompanyManagement.getId());
updatePayMemberProjectSubitem.in(PayMemberProjectSubitem::getId,idList2);
updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getCompanyName,payCompanyManagement.getCompanyName());
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()) {
LambdaUpdateWrapper<PayCompanyManagementTemporary> updatePayCompanyManagementTemporary = new LambdaUpdateWrapper<>();
@@ -878,19 +879,11 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
// 更新合同
LambdaUpdateWrapper<PayIncomeContract> updatePayIncomeContract = new LambdaUpdateWrapper<>();
updatePayIncomeContract.eq(PayIncomeContract::getSignedCompanyId,payCompanyManagement.getId());
updatePayIncomeContract.eq(PayIncomeContract::getSignedCompanyId, companyManagementId);
//updatePayIncomeContract.ge(PayIncomeContract::getCreateTime,payCompanyManagement.getEditTime());
updatePayIncomeContract.exists(" select 1 from pay_company_management_temporary where " +
"pay_income_contract.signed_company_temporary_id = id and create_time >= '" + DateTime.of(payCompanyManagement.getEditTime()) + "'");
updatePayIncomeContract.set(PayIncomeContract::getSignedCompanyTemporaryName,payCompanyManagement.getCompanyName());
payIncomeContractService.update(updatePayIncomeContract);
// 更新打包
LambdaUpdateWrapper<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.service.IPayCommonProjectService;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemContactsService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
@@ -321,7 +320,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
//如果未邮寄,更新邮寄联系人信息
if (postStatus.equals(PayIncomeContractCommon.POST_STATUS0)){
// 联系人
PayContactsManagementTemporary payContactsManagement = payContactsManagementTemporaryService.insertContactsManagementTemporary(payIncomeContract.getSignedContactsId());
PayContactsManagementTemporary payContactsManagement = payContactsManagementTemporaryService.insertContactsManagementTemporary(payIncomeContract.getSignedContactsId(), null);
if(!Objects.isNull(payContactsManagement)){
payMailContract.setMobile(payContactsManagement.getPhone());
payMailContract.setEmail(payContactsManagement.getEmail());
@@ -929,7 +928,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
*/
private void setPayIncomeContractAdd(PayIncomeContract payIncomeContract){
// 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payIncomeContract.getSignedCompanyId());
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payIncomeContract.getSignedCompanyId(), null);
if(Objects.isNull(chargeCompanyName)){
throw new JeroBootException("企业名称为空!");
}
@@ -937,7 +936,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
payIncomeContract.setSignedCompanyTemporaryName(chargeCompanyName.getCompanyName());
// 联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payIncomeContract.getSignedContactsId());
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payIncomeContract.getSignedContactsId(), null);
if(Objects.isNull(contactsName)){
throw new JeroBootException("联系人名称为空!");
}
@@ -977,13 +976,13 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(!Objects.equals(payIncomeContractStatus.getSignedContactsTemporaryId(),payIncomeContract.getSignedContactsId())){
// 联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payIncomeContract.getSignedContactsId());
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payIncomeContract.getSignedContactsId(), null);
if(Objects.isNull(contactsName)){
throw new JeroBootException("联系人名称为空!");
}
payIncomeContract.setSignedContactsTemporaryId(contactsName.getId());
payIncomeContract.setSignedContactsTemporaryName(contactsName.getName());
payContactsManagementTemporaryService.removeById(payIncomeContractStatus.getSignedContactsTemporaryId());
// payContactsManagementTemporaryService.removeById(payIncomeContractStatus.getSignedContactsTemporaryId());
}else{
payIncomeContract.setSignedContactsId(payIncomeContractStatus.getSignedContactsId());
}
@@ -23,9 +23,8 @@ import com.jero.data.entity.*;
import com.jero.data.service.IPayCaseCouncilService;
import com.jero.data.service.IPayCaseCouncilSubitemService;
import com.jero.mail.commont.constant;
import com.jero.meeting.entity.PayMeetingRemindRecord;
import com.jero.meeting.service.IPayMeetingRemindRecordService;
import com.jero.project.common.PayProjectCommon;
import com.jero.member.service.ITbMemberProjectService;
import com.jero.util.AmountUtil;
import io.swagger.annotations.Api;
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.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.ArrayList;
@@ -67,6 +65,8 @@ public class PayCaseCouncilSubitemController extends JeroController<PayCaseCounc
private IPayContactsManagementService payContactsManagementService;
@Resource
private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
@Resource
private ITbMemberProjectService tbMemberProjectService;
/**
* 理事会成员表
@@ -320,5 +320,16 @@ public class PayCaseCouncilSubitemController extends JeroController<PayCaseCounc
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;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.data.entity.*;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.ArrayList;
import java.util.List;
@@ -27,4 +27,5 @@ public interface IPayCaseCouncilSubitemService extends IService<PayCaseCouncilSu
List<subCouncil> listTwo(QueryWrapper<subCouncil> queryWrapper, String meetingId);
void importToMemberProjectSubitem(JSONObject jsonObject);
}
@@ -1,18 +1,38 @@
package com.jero.data.service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.common.ProjectCommon;
import com.jero.common.enums.PaymentStatusEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.config.StaticConfig;
import com.jero.data.entity.*;
import com.jero.data.mapper.PayCaseCouncilSubitemMapper;
import com.jero.data.service.IPayCaseCouncilSubitemService;
import com.jero.member.entity.TbMemberProject;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.enums.MemberStatusEnum;
import com.jero.member.service.ITbMemberProjectService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.project.common.PayProjectCommon;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* @Description: pay_case_council_subitem
@@ -25,6 +45,17 @@ public class PayCaseCouncilSubitemServiceImpl extends ServiceImpl<PayCaseCouncil
@Resource
private PayCaseCouncilSubitemMapper payCaseCouncilSubitemMapper;
@Resource
private IPayCaseCouncilSubitemService payCaseCouncilSubitemService;
@Resource
private ITbMemberProjectService tbMemberProjectService;
@Resource
private IPayCompanyManagementService companyManagementService;
@Resource
private IPayContactsManagementService payContactsManagementService;
@Resource
private ITbMemberProjectSubitemService memberProjectSubitemService;
@Override
public IPage<councilList> listThree(Page<councilList> page, String contactsNames, String companyNames, String councilNames, String userId) {
return payCaseCouncilSubitemMapper.listThree(page,contactsNames,companyNames,councilNames,userId);
@@ -50,5 +81,104 @@ public class PayCaseCouncilSubitemServiceImpl extends ServiceImpl<PayCaseCouncil
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.update_by AS updateBy
FROM pay_drafting_group_subitem pdgs
left join pay_company_management_temporary pcmt on pdgs.charge_company_temporary_id = pcmt.id
left join pay_company_management pcm on pcmt.company_id = pcm.id
left join pay_company_management pcm on pdgs.charge_company_id = pcm.id
<where>
pdgs.drafting_group_id = #{payDraftingGroupSubItem.draftingGroupId} AND (pdgs.check_result = 1 OR pdgs.check_result = 2)
<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.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.drafting.common.DraftingConstant;
import com.jero.drafting.entity.PayDraftingGroup;
import com.jero.drafting.entity.PayDraftingGroupResearchProject;
import com.jero.drafting.entity.PayDraftingGroupSubItem;
@@ -331,7 +330,7 @@ public class PayDraftingGroupServiceImpl extends ServiceImpl<PayDraftingGroupMap
// 添加企业临时数据
PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getById(p.getChargeCompanyTemporaryId());
if(Objects.isNull(payCompanyManagementTemporary)){
payCompanyManagementTemporary = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(p.getChargeCompanyId());
payCompanyManagementTemporary = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(p.getChargeCompanyId(), null);
}else{
payCompanyManagementTemporary.setCompanyId(payCompanyManagementTemporary.getCompanyId());
payCompanyManagementTemporary.setId(null);
@@ -356,7 +355,7 @@ public class PayDraftingGroupServiceImpl extends ServiceImpl<PayDraftingGroupMap
for (PayDraftingGroupSubItemContacts subItemContacts : itemContactsList) {
PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(subItemContacts.getContactsTemporaryId());
if(Objects.isNull(payContactsManagementTemporary)){
payContactsManagementTemporary = payContactsManagementTemporaryService.insertContactsManagementTemporary(subItemContacts.getContactsId());
payContactsManagementTemporary = payContactsManagementTemporaryService.insertContactsManagementTemporary(subItemContacts.getContactsId(), null);
}else{
payContactsManagementTemporary.setId(null);
payContactsManagementTemporary.setCompanyId(p.getChargeCompanyTemporaryId());
@@ -215,7 +215,7 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl<PayDraftingG
*/
private void setPayDraftingGroupSubItemAdd(PayDraftingGroupSubItem payDraftingGroupSubItem) {
// 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payDraftingGroupSubItem.getChargeCompanyId());
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payDraftingGroupSubItem.getChargeCompanyId(), null);
if (Objects.isNull(chargeCompanyName)) {
throw new JeroBootException("企业名称为空!");
}
@@ -225,7 +225,7 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl<PayDraftingG
if (!CollectionUtils.isEmpty(payDraftingGroupSubItemContactsList)) {
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)) {
throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!");
}
@@ -275,10 +275,10 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl<PayDraftingG
throw new JeroBootException("起草组成员不可操作!");
}
// 删除企业联系人临时数据
payCompanyManagementTemporaryService.removeById(payDraftingGroupSubItem.getChargeCompanyTemporaryId());
//payCompanyManagementTemporaryService.removeById(payDraftingGroupSubItem.getChargeCompanyTemporaryId());
List<PayDraftingGroupSubItemContacts> subItemContacts = payDraftingGroupSubItemContactsMapper.getSubItemContacts(id);
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) {
if (!Objects.equals(payDraftingGroupSubItemOld.getChargeCompanyTemporaryId(), payDraftingGroupSubItem.getChargeCompanyId())) {
// 企业信息
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payDraftingGroupSubItem.getChargeCompanyId());
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payDraftingGroupSubItem.getChargeCompanyId(), null);
if (Objects.isNull(chargeCompanyName)) {
throw new JeroBootException("企业名称为空!");
}
payDraftingGroupSubItem.setChargeCompanyTemporaryId(chargeCompanyName.getId());
payDraftingGroupSubItem.setChargeCompanyTemporaryName(chargeCompanyName.getCompanyName());
payCompanyManagementTemporaryService.removeById(payDraftingGroupSubItemOld.getChargeCompanyTemporaryId());
//payCompanyManagementTemporaryService.removeById(payDraftingGroupSubItemOld.getChargeCompanyTemporaryId());
} else {
payDraftingGroupSubItem.setChargeCompanyId(payDraftingGroupSubItemOld.getChargeCompanyId());
}
@@ -455,7 +455,7 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl<PayDraftingG
// 删除临时表历史记录
if (!CollectionUtils.isEmpty(payDraftingGroupSubItemOld.getPayDraftingGroupSubItemContactsList())) {
List<String> list = payDraftingGroupSubItemOld.getPayDraftingGroupSubItemContactsList().stream().map(PayDraftingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
payContactsManagementTemporaryService.removeByIds(list);
// paycontactsManagementTemporaryService.removeByIds(list);
}
// 删除联系人记录
LambdaUpdateWrapper<PayDraftingGroupSubItemContacts> updatePayDraftingGroupSubItemContacts = new LambdaUpdateWrapper<>();
@@ -464,7 +464,7 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl<PayDraftingG
// 新增
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)) {
throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!");
}
@@ -226,9 +226,9 @@ public class IndexService {
divide = BigDecimal.ZERO;
}else {
divide = money
.divide(all,3,RoundingMode.HALF_DOWN)
.divide(all,4,RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100))
.setScale(1, RoundingMode.UNNECESSARY);
.setScale(2, RoundingMode.UNNECESSARY);
}
histogramVO.setValue(divide.toString());
histogramVOlist.add(histogramVO);
@@ -295,9 +295,9 @@ public class IndexService {
divide = BigDecimal.ZERO;
}else {
divide = money
.divide(all,3,RoundingMode.HALF_DOWN)
.divide(all,4,RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100))
.setScale(1, RoundingMode.UNNECESSARY);
.setScale(2, RoundingMode.UNNECESSARY);
}
pieChartVO.setValue(String.valueOf(divide));
@@ -348,9 +348,9 @@ public class IndexService {
divide = BigDecimal.ZERO;
}else {
divide = one
.divide(all,3,RoundingMode.HALF_DOWN)
.divide(all,4,RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100))
.setScale(1, RoundingMode.UNNECESSARY);
.setScale(2, RoundingMode.UNNECESSARY);
}
uncollectedPieChartVO.setValue(divide.toString());
}
@@ -10,6 +10,7 @@ import com.jero.mail.entity.PayMailBill;
import com.jero.mail.vo.PayMailBillVO;
import com.jero.member.enums.StandardsTypeEnum;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -44,6 +45,8 @@ public interface IPayMailBillService extends IService<PayMailBill> {
*/
Result<?> addPayBill(PayMailBillVO payMailBill);
int getMakeInvoice(BigDecimal amountReceivable, Integer needInvoice, BigDecimal invoiceAmount);
/**
* 编辑开票
* @param payMailBillVo
@@ -16,7 +16,6 @@ import com.jero.common.enums.ManagementMessageEnums;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
@@ -25,7 +24,6 @@ import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.config.StaticConfig;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.mail.entity.BillingInfo;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.mapper.PayMailBillMapper;
@@ -40,7 +38,6 @@ import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.member.entity.*;
import com.jero.member.enums.StandardsTypeEnum;
import com.jero.member.mapper.*;
import com.jero.member.service.*;
import com.jero.modules.system.entity.SysUser;
@@ -754,28 +751,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
break;
}
if(amountReceivable==null){
amountReceivable =new BigDecimal("0");
}
BigDecimal zero =new BigDecimal("0");
//应收=0 || 不需要开票
if(amountReceivable.compareTo(zero)==0 || needInvoice.equals(0)){
makeInvoice= 3;
}
//应收>开票总额 && 开票总额!=0
if(amountReceivable.compareTo(invoiceAmount) == 1 && !(invoiceAmount.compareTo(zero) == 0)){
makeInvoice= 2;
}
//开票总额>=应收
if(invoiceAmount.compareTo(amountReceivable) > -1){
makeInvoice= 1;
}
//开票总额为0
if(invoiceAmount.compareTo(zero)==0){
makeInvoice= 0;
}
makeInvoice = getMakeInvoice(amountReceivable, needInvoice, invoiceAmount);
//更新项目表开票状态
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) {
@@ -1311,28 +1324,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
break;
}
if(amountReceivable==null){
amountReceivable =new BigDecimal("0");
}
BigDecimal zero =new BigDecimal("0");
//应收=0 || 不需要开票
if(amountReceivable.compareTo(zero)==0 || needInvoice.equals(0)){
makeInvoice= 3;
}
//应收>开票总额 && 开票总额!=0
if(amountReceivable.compareTo(invoiceAmount) == 1 && !(invoiceAmount.compareTo(zero) == 0)){
makeInvoice= 2;
}
//开票总额>=应收
if(invoiceAmount.compareTo(amountReceivable) > -1){
makeInvoice= 1;
}
//开票总额为0
if(invoiceAmount.compareTo(zero)==0){
makeInvoice= 0;
}
makeInvoice = getMakeInvoice(amountReceivable, needInvoice, invoiceAmount);
//更新项目表开票状态
switch (payMailBillProject.getProjectType().toString()) {
@@ -1662,28 +1654,8 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
default:
break;
}
if(amountReceivable==null){
amountReceivable =new BigDecimal("0");
}
BigDecimal zero =new BigDecimal("0");
//应收=0 || 不需要开票
if(amountReceivable.compareTo(zero)==0 || needInvoice.equals(0)){
makeInvoice= 3;
}
//应收>开票总额 && 开票总额!=0
if(amountReceivable.compareTo(invoiceAmount) == 1 && !(invoiceAmount.compareTo(zero) == 0)){
makeInvoice= 2;
}
//开票总额>=应收
if(invoiceAmount.compareTo(amountReceivable) > -1){
makeInvoice= 1;
}
//开票总额为0
if(invoiceAmount.compareTo(zero)==0){
makeInvoice= 0;
}
makeInvoice = getMakeInvoice(amountReceivable, needInvoice, invoiceAmount);
//更新项目表开票状态
switch (oldBmp.getProjectType().toString()) {
@@ -29,7 +29,9 @@ import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -81,6 +83,12 @@ public class CouncilMeetingSituationController extends JeroController<PayMeeting
} else {
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);
}
@@ -42,6 +42,7 @@ import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 起草组会议 参会人信息
@@ -194,6 +195,28 @@ public class DraftGroupMeetingSituationController extends JeroController<PayMeet
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.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -86,6 +89,12 @@ public class WorkGroupMeetingSituationController extends JeroController<PayMeeti
}else {
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);
}
@@ -203,6 +212,28 @@ public class WorkGroupMeetingSituationController extends JeroController<PayMeeti
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 = "预计到账日期")
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();
}
@@ -35,7 +35,7 @@ public interface PayMeetingMapper extends BaseMapper<PayMeeting> {
IPage<PayMeeting> workGroupPage(Page<PayMeeting> page, @Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper);
IPage<PayMeeting> draftGroupPage(Page<PayMeeting> page,@Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper);
IPage<PayMeeting> draftGroupPage(Page<PayMeeting> page, @Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper);
IPage<PayMeeting> standardPage(Page<PayMeeting> page, @Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper);
@@ -38,4 +38,19 @@ public interface PayMeetingSituationMapper extends BaseMapper<PayMeetingSituatio
List<MeetingPackStatistics> getMeetingPackStatistics(@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"?>
<!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">
<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">
<id column="id" property="id"/>
<result column="create_by" property="createBy"/>
@@ -202,4 +249,29 @@
from v_meeting_pack_statistical
${ew.customSqlSegment}
</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>
@@ -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.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.common.RoleCommon;
import com.jero.common.constant.CommonConstant;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.CompanyMessageEnums;
@@ -62,8 +63,10 @@ import com.jero.member.service.ITbMemberProjectService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItemContacts;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemContactsService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
@@ -157,6 +160,8 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
private SafetyCenterService safetyCenterService;
@Resource
private SafetyCenterSubitemContactsService safetyCenterSubitemContactsService;
@Resource
private AnnualDataLockingService annualDataLockingService;
/**
* 新增会议
*/
@@ -338,6 +343,7 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
PayMeeting payMeeting = getPayMeeting(payMeetingVO, hotelContactsList);
saveOrUpdate(payMeeting);
String meetingId = payMeeting.getId();
//annualDataLockingService.judgeUserYear()
// 同步预计到账日期
LambdaUpdateWrapper<PayMeetingSituation> upPayMeetingSituation = new LambdaUpdateWrapper<>();
upPayMeetingSituation.eq(PayMeetingSituation::getMeetingId, meetingId);
@@ -454,9 +460,15 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
if (id != null) {
wrapper.ne(PayMeeting::getId, id);
oldMeeting = getById(id);
String year = oldMeeting.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
}else {
payMeetingVO.setIsRelease(MeetingCommon.REMIND_0);
}
String year = payMeetingVO.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
if (count(wrapper) > 0) {
throw new JeroBootException("会议名称不能重复");
}
@@ -489,6 +501,7 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
throw new JeroBootException("会议费用为0时,不可上传收款二维码");
}
}
//根据会议类型进行校验
switch (meetingType) {
case MeetingCommon.WORKING_GROUP_MEETING:
@@ -663,6 +676,10 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
if (integer > 0) {
throw new JeroBootException("该会议有参会人无法删除");
}
PayMeeting payMeeting = getById(id);
String year = payMeeting.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
removeById(id);
LambdaQueryWrapper<PayMeetingHotelContacts> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMeetingHotelContacts::getMeetingId, id);
@@ -685,6 +702,10 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
PayMeeting payMeeting = getById(id);
meetingList.add(payMeeting.getMeetingName());
}
PayMeeting payMeeting = getById(id);
String year = payMeeting.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
}
if (meetingList.size() > 0) {
throw new JeroBootException(meetingList + "会议下有参会人,无法删除");
@@ -76,12 +76,16 @@ import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayWorkingGroupSubItemContacts;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.project.service.IPayWorkingGroupSubItemContactsService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.standards.memberinfo.service.IMemberInfoService;
import com.jero.statistics.entity.MeetingPackStatistics;
import com.jero.statistics.entity.MeetingPackStatisticsSearch;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import com.jero.util.ObjRecordUtil;
@@ -173,7 +177,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Resource
private SafetyCenterSubitemContactsService safetyCenterSubitemContactsService;
@Resource
private AnnualDataLockingService annualDataLockingService;
private static final String[] CAN_MODIFY_LIST =
new String[]{"arrivalTime", "departureTime", "checkInHotel"};
@@ -199,12 +204,13 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
throw new JeroBootException("只有会议负责人,会议联系人可以新增参会人");
}
}
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payMeeting1.getParticularYear());
payMeetingSituation.setStatus(MeetingSubitemCommon.STATUS_3);
//payMeetingSituation.setNeedInvoice(PayProjectCommon.NO);
payMeetingSituation.setAmountReceivable(new BigDecimal("0"));
//处理校验参会人信息
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation);
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation,annualDataLocking);
payMeetingSituation1.setEstimatedArrivalDate(payMeeting1.getStartTime());
saveMeetingSituation(payMeetingSituation1);
@@ -354,9 +360,11 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
payMeetingSituation.setGuestType(guestType);
payMeetingSituation.setIdentity(MeetingSubitemCommon.JIA_BIN);
}
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payMeeting.getParticularYear());
//处理校验参会人信息
payMeetingSituation.setAmountReceivable(new BigDecimal("0"));
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation);
PayMeetingSituation payMeetingSituation1 = getPayMeetingSituation(payMeetingSituation, annualDataLocking);
payMeetingSituation1.setEstimatedArrivalDate(payMeeting.getStartTime());
saveMeetingSituation(payMeetingSituation1);
//处理打包
@@ -591,7 +599,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
payPaymentRecord.setProjectId(payMeetingSituation.getId());
payPaymentRecord.setProof(payMeetingSituation.getPaymentRecord());
payPaymentRecord.setProjectType(Integer.parseInt(PayIncomeContractCommon.PROJECT_TYPE3));
payPaymentRecord.setAmountReceived(payMeetingSituation.getAmountReceivable());
payPaymentRecord.setAmountReceived(payMeetingSituation.getAmountReceivable().subtract(payMeetingSituation.getPaidAmount()));
payPaymentRecord.setPaymentDate(new Date());
payPaymentRecords.add(payPaymentRecord);
//添加来款
@@ -1030,7 +1038,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
if (meetingType1 != null && !Objects.equals(payMeeting.getMeetingType(),meetingType1)) {
throw new JeroBootException("数据权限不足");
}
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payMeeting.getParticularYear());
//把原始数据保存下来后面用于判断修改了那些字段
PayMeetingSituation oldObject = new PayMeetingSituation();
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)) {
PayMeetingSituation newObject = new PayMeetingSituation();
@@ -1144,7 +1153,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
* 处理校验参会人信息
*/
@NotNull
private PayMeetingSituation getPayMeetingSituation(PayMeetingSituation payMeetingSituation) {
private PayMeetingSituation getPayMeetingSituation(PayMeetingSituation payMeetingSituation, AnnualDataLocking annualDataLocking) {
String meetingId = payMeetingSituation.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
//会议类型
@@ -1168,12 +1177,12 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
PayCompanyManagement companyManagement = companyManagementService.getById(companyId);
payMeetingSituation.setCompanyName(companyManagement.getCompanyName());
//处理企业
canHuiRenCompany(payMeetingSituation1, companyManagement);
canHuiRenCompany(payMeetingSituation1, companyManagement, annualDataLocking);
//校验企业联系人
String companyContactId = meetingEntity.getCompanyContactId();
PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId);
//处理联系人
canHuiContact(payMeetingSituation1, companyId, contactsManagement);
canHuiContact(payMeetingSituation1, companyId, contactsManagement, annualDataLocking);
//处理缴费凭证
payMeetingSituation1.setPaymentRecord(null);
@@ -1511,7 +1520,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
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) {
throw new JeroBootException("联系人不存在");
}
@@ -1519,8 +1528,10 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
String contactsManagementId = contactsManagement.getId();
//校验是否是选择的企业的联系人
if (companyId1.equals(companyId)) {
payMeetingSituation.setCompanyContactTemporaryId(contactsManagementId);
payMeetingSituation.setCompanyContactName(contactsManagement.getName());
PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(contactsManagementId, annualDataLocking);
payMeetingSituation.setCompanyContactTemporaryId(contactsName.getId());
payMeetingSituation.setCompanyContactName(contactsName.getName());
} else {
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) {
throw new JeroBootException("企业不存在");
}
payMeetingSituation.setCompanyTemporaryId(companyManagement.getId());
payMeetingSituation.setCompanyName(companyManagement.getCompanyName());
PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(companyManagement.getId(), annualDataLocking);
payMeetingSituation.setCompanyTemporaryId(chargeCompanyName.getId());
payMeetingSituation.setCompanyName(chargeCompanyName.getCompanyName());
}
/**
@@ -1549,6 +1562,11 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
*/
@Override
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);
removeById(id);
}
@@ -1558,6 +1576,13 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
*/
@Override
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) {
removeSituationPack(id);
}
@@ -1743,16 +1768,18 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
String meetingType1 = getMeetingType(payMeetingSituation);
List<Object> exportList = new ArrayList<>();
for (PayMeetingSituation meetingSituation : pageList) {
String companyId = meetingSituation.getCompanyId();
String companyTemporaryId = meetingSituation.getCompanyTemporaryId();
String companyContactId = meetingSituation.getCompanyContactId();
PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId);
String companyContactTemporaryId = meetingSituation.getCompanyContactTemporaryId();
PayContactsManagementTemporary contactsManagement = contactsManagementTemporaryService.getByAllTable(companyContactId, companyContactTemporaryId);
meetingSituation.setCompanyContactName(contactsManagement.getName());
if (!MeetingCommon.INTERNATIONAL_MEETING.equals(meetingType1)){
meetingSituation.setPost(contactsManagement.getPost());
}
meetingSituation.setPhone(PasswordUtil.decrypt(contactsManagement.getPhone()));
meetingSituation.setEmail(PasswordUtil.decrypt(contactsManagement.getEmail()));
PayCompanyManagement companyManagement = companyManagementService.getById(contactsManagement.getCompanyId());
PayCompanyManagementTemporary companyManagement = companyManagementTemporaryService.getByAllTable(companyId, companyTemporaryId);
meetingSituation.setCompanyName(companyManagement.getCompanyName());
String checkFile = meetingSituation.getCheckFile();
if (StringUtils.isNotBlank(checkFile)) {
@@ -2137,8 +2164,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
if (!StringUtils.isBlank(metingPackStatisticsSearch.getPayMode())) {
query.lambda().eq(PayMeetingSituation::getPayMode, metingPackStatisticsSearch.getPayMode());
}
if (!StringUtils.isBlank(metingPackStatisticsSearch.getPaymentYear())) {
query.eq("payment_year", metingPackStatisticsSearch.getPaymentYear());
if (!StringUtils.isBlank(metingPackStatisticsSearch.getYear())) {
query.eq("year", metingPackStatisticsSearch.getYear());
}
return query;
}
@@ -13,4 +13,5 @@ public class CheckVO {
private Integer checkResult;
private String checkRemark;
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.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -36,6 +37,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.member.vo.PayMemberProjectSubitemExcel;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayWorkingGroupSubItem;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.commons.collections.CollectionUtils;
@@ -87,6 +89,17 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
HttpServletRequest req) {
Map<String, String[]> parameterMap = req.getParameterMap();
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();
// 预计到账结束日期
@@ -112,6 +125,17 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
}
Page<PayMemberProjectSubitem> page = new Page<>(pageNo, pageSize);
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);
}
@@ -170,6 +194,7 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
if (Objects.isNull(payMemberProjectSubitem.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空");
}
payMemberProjectSubitem.setEstimatedArrivalDate(payMemberProjectSubitem.getEstimatedArrivalDate() + "-01");
memberProjectService.check(payMemberProjectSubitem.getProjectId(),"safeguardMember:add");
ValidUtil.validate(payMemberProjectSubitem);
memberProjectSubitemService.add(payMemberProjectSubitem);
@@ -187,6 +212,7 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
if (Objects.isNull(payMemberProjectSubitem.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空");
}
payMemberProjectSubitem.setEstimatedArrivalDate(payMemberProjectSubitem.getEstimatedArrivalDate() + "-01");
memberProjectSubitemService.check(payMemberProjectSubitem.getId(),"safeguardMember:edit");
ValidUtil.validate(payMemberProjectSubitem);
memberProjectSubitemService.editById(payMemberProjectSubitem);
@@ -249,6 +275,32 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
if (!rolePermissionService.getRolePermission("safeguardMember:export")) {
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);
IPage<PayMemberProjectSubitem> getPage = memberProjectSubitemService.getPage(page, queryWrapper);
List<PayMemberProjectSubitem> pageList = getPage.getRecords();
@@ -265,6 +317,11 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
memberProjectSubitem.setPostContactMail(PasswordUtil.decrypt(contactsManagement.getEmail()));
memberProjectSubitem.setPostContactAddress(contactsManagement.getContactAddress());
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, "会员项目成员表");
}
@@ -319,7 +376,8 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
errorMessage.add("" + errorRowNum + "行:预估到账日期不能为空");
}else {
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) {
errorMessage.add("" + errorRowNum + "行:预估到账日期格式不正确");
}
@@ -182,18 +182,18 @@ public class TbCertificatePaymentController extends JeroController<TbCertificate
@PostMapping(value = "/incomingUpdateCertificate")
public Result<Object> incomingUpdateCertificate(@RequestBody TbCertificatePayment tbCertificatePayment){
CertificatePaymentInfo certificatePaymentInfo = new CertificatePaymentInfo();
certificatePaymentInfo.setId(tbCertificatePayment.getTbPaymentId());
certificatePaymentInfo.setMemberId(tbCertificatePayment.getMemberId());
certificatePaymentInfo.setInvoiceRequirements(tbCertificatePayment.getInvoiceRequirements());
certificatePaymentInfo.setHeaderName(tbCertificatePayment.getHeaderName());
certificatePaymentInfo.setTaxNumber(tbCertificatePayment.getTaxNumber());
certificatePaymentInfo.setInvoiceAddress(tbCertificatePayment.getInvoiceAddress());
certificatePaymentInfo.setInvoicePhone(tbCertificatePayment.getInvoicePhone());
certificatePaymentInfo.setDepositBank(tbCertificatePayment.getDepositBank());
certificatePaymentInfo.setBankAccount(tbCertificatePayment.getBankAccount());
AuthenticationUtils.post("/certificatePaymentInfo/incomingUpdateCertificate",null,certificatePaymentInfo);
//CertificatePaymentInfo certificatePaymentInfo = new CertificatePaymentInfo();
//certificatePaymentInfo.setId(tbCertificatePayment.getTbPaymentId());
//certificatePaymentInfo.setMemberId(tbCertificatePayment.getMemberId());
//certificatePaymentInfo.setInvoiceRequirements(tbCertificatePayment.getInvoiceRequirements());
//certificatePaymentInfo.setHeaderName(tbCertificatePayment.getHeaderName());
//certificatePaymentInfo.setTaxNumber(tbCertificatePayment.getTaxNumber());
//certificatePaymentInfo.setInvoiceAddress(tbCertificatePayment.getInvoiceAddress());
//certificatePaymentInfo.setInvoicePhone(tbCertificatePayment.getInvoicePhone());
//certificatePaymentInfo.setDepositBank(tbCertificatePayment.getDepositBank());
//certificatePaymentInfo.setBankAccount(tbCertificatePayment.getBankAccount());
//
//AuthenticationUtils.post("/certificatePaymentInfo/incomingUpdateCertificate",null,certificatePaymentInfo);
return Result.OK();
}
@@ -1,29 +1,25 @@
package com.jero.member.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.format.DateParser;
import com.jero.aspect.annotation.CompanyNameTranslate;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.member.entity.TbMemberProject;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.ITbMemberProjectSubitemService;
@@ -31,6 +27,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.member.vo.*;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.commons.lang3.StringUtils;
@@ -60,6 +60,15 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Resource
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,
HttpServletRequest req) {
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);
for (TbMemberProjectSubitem record : pageList.getRecords()) {
record.setEmail(PasswordUtil.decrypt(record.getEmail()));
@@ -264,6 +284,17 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
@RequiresPermissions("safeguardStardsMember:export")
@GetMapping(value = "/exportXls")
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> exportList;
// 过滤选中数据
@@ -274,7 +305,27 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
} else {
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, "标协会员项目成员表");
}
@@ -78,6 +78,10 @@ public class TbMemberProjectSubitem implements Serializable {
@Excel(name = "会员单位", width = 15, dictTable = "pay_company_management", dicText = "company_name", dicCode = "id")
@Dict(dictTable = "pay_company_management", dicText = "company_name", dicCode = "id")
private String companyId;
/**
* 企业临时id
*/
private String companyTemporaryId;
/**会员单位*/
@ApiModelProperty(value = "会员单位")
@@ -100,10 +104,36 @@ public class TbMemberProjectSubitem implements Serializable {
@Dict(dictTable = "pay_contacts_management", dicText = "name", dicCode = "id")
private String liaisonManId;
/**
* 企业联系人临时id
*/
private String companyContactTemporaryId;
/**联系人*/
@ApiModelProperty(value = "联系人")
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")
private String postCompanyId;
@@ -111,15 +141,10 @@ public class TbMemberProjectSubitem implements Serializable {
@Excel(name = "邮寄联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id")
private String postContactId;
/**邮箱*/
//@Excel(name = "邮箱", width = 20,exportConvert = true)
@ApiModelProperty(value = "邮箱")
private String email;
/**手机*/
//@Excel(name = "手机", width = 15,exportConvert = true)
@ApiModelProperty(value = "手机")
private String mobile;
/**
* 邮寄联系人临时id
*/
private String postContactTemporaryId;
/**会员状态*/
//@Excel(name = "会员状态", width = 15, dicCode = "member_status")
@@ -174,12 +199,22 @@ public class TbMemberProjectSubitem implements Serializable {
private BigDecimal confirmAmount;
/**预估到账日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预估到账日期")
@Excel(name = "预估到账日期", width = 15, format = "yyyy-MM-dd")
@Excel(name = "预估到账日期", width = 15, format = "yyyy-MM")
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")
@ApiModelProperty(value = "需要发票")
@@ -194,13 +229,16 @@ public class TbMemberProjectSubitem implements Serializable {
/**到账*/
@ApiModelProperty(value = "到账")
@Excel(name = "是否到账", width = 15, dicCode = "account_type")
private Integer inAccount;
/**开票*/
@ApiModelProperty(value = "开票")
@Excel(name = "是否开票", width = 15, dicCode = "make_invoice_type")
private Integer makeInvoice;
@ApiModelProperty(value = "确认收入((1:全额(对勾),0:0(X),2>0 && <总金额(半满标志)))")
@Excel(name = "是否确收", width = 15, dicCode = "affirmi_ncome")
private Integer affirmIncome;
/**邮寄*/
@@ -209,7 +247,7 @@ public class TbMemberProjectSubitem implements Serializable {
/**提票"*/
@ApiModelProperty(value = "提票")
//@Excel(name = "提票", width = 15,dicCode = "yn")
@Excel(name = "是否提票", width = 15,dicCode = "yn")
@Dict(dicCode = "yn")
private Integer ticketCollection;
@@ -400,4 +438,9 @@ public class TbMemberProjectSubitem implements Serializable {
@ApiModelProperty(value = "权益状态")
@TableField(exist = false)
private String equityStatus;
@ApiModelProperty(value = "信用代码")
@TableField(exist = false)
@Excel(name = "信用代码", width = 15)
private String dutyCode;
}
@@ -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);
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);
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 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(
pmps.company_name =
IF(
@@ -82,12 +81,18 @@
pmps.estimated_arrival_date
from pay_member_project_subitem pmps
left join pay_member_project pmp on pmps.project_id = pmp.id
left join pay_company_management_temporary pcmt on pmps.company_temporary_id = pcmt.id
left join pay_company_management pcm on pcmt.company_id = pcm.id
left join pay_company_management pcm on pmps.company_id = pcm.id
${ew.customSqlSegment}
<where>
</where>
</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>
@@ -70,6 +70,7 @@
<result column="invalidation_date" property="invalidationDate"/>
<result column="year" property="year"/>
</resultMap>
<select id="queryListByCompany" resultType="com.jero.member.entity.TbMemberProjectSubitem">
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
@@ -87,10 +88,37 @@
GROUP BY tmps.id ORDER BY tmps.create_time DESC
</select>
<select id="pageList" resultMap="TbMemberProjectSubitemResultMap">
select distinct tmps.*
<select id="pageList" resultType="com.jero.member.entity.TbMemberProjectSubitem">
select tmps.id,tmps.create_by,tmps.create_time,tmps.update_by,tmps.update_time,tmps.project_id,tmps.member_no,
tmps.company_id,
tmps.company_temporary_id,
ifnull( IF(
tmps.company_name =
IF(
tmps.company_name LIKE '%(未审核)',
CONCAT(pcm.company_name, '(未审核)'),
pcm.company_name
),
tmps.company_name,
CONCAT(tmps.company_name, '(更名为', pcm.company_name, '')
), tmps.company_name) AS company_name,
tmps.member_nature,
tmps.member_type,tmps.liaison_man_id,tmps.company_contact_temporary_id,
tmps.liaison_man,tmps.post_company_id,tmps.post_contact_id,tmps.post_contact_temporary_id,tmps.email,tmps.mobile,
tmps.member_status,tmps.register_time,tmps.amount_receivable,tmps.tax_rate,
tmps.tax,tmps.no_tax_amount,tmps.paid_amount,tmps.confirm_amount,tmps.estimated_arrival_date,
tmps.invoice_requirements,tmps.pack,tmps.in_account,tmps.make_invoice,tmps.affirm_income,
tmps.mail,tmps.ticket_collection,tmps.charge_use,tmps.payment_method,tmps.tb_payment_id,tmps.invoice_amount,
tmps.payment_status,tmps.bill_number,tmps.member_id,tmps.payment_record,
tmps.submission_time,tmps.header_name,tmps.tax_number,tmps.invoice_address,tmps.invoice_phone,tmps.deposit_bank,
tmps.bank_account,tmps.link_bank_number,tmps.confirm_tax,tmps.confirm_no_tax_amount,tmps.paid_tax,tmps.paid_no_tax_amount,
tmps.invoice_tax,tmps.invoice_no_tax_amount,tmps.member_payment_amount,tmps.certificate_payment_amount,tmps.other_payment_amount,
tmps.admin_add_flag,tmps.charge_notice_no,tmps.charge_notice_id,tmps.contract_num,tmps.remark,tmps.effective_date,
tmps.invalidation_date
from tb_member_project_subitem tmps
LEFT JOIN tb_member_project tmp on tmp.id = tmps.project_id
left join pay_company_management pcm on tmps.company_id = pcm.id
${ew.customSqlSegment}
</select>
@@ -169,4 +197,18 @@
tmps.company_id = #{companyId}
</where>
</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>
@@ -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.mapper.SysUserMapper;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.service.AnnualDataLockingService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -51,6 +53,8 @@ public class IPayMemberProjectService extends ServiceImpl<PayMemberProjectMapper
private IPayIncomeContractService payIncomeContractService;
@Resource
private RolePermissionService rolePermissionService;
@Resource
private AnnualDataLockingService annualDataLockingService;
/**
* 保存
*
@@ -66,6 +70,9 @@ public class IPayMemberProjectService extends ServiceImpl<PayMemberProjectMapper
if (integer>0){
throw new JeroBootException("项目名称重复");
}
String year = payMemberProject.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
//判断联系人
String directorId = payMemberProject.getDirectorId();
SysUser sysUser = userMapper.selectById(directorId);
@@ -83,6 +90,16 @@ public class IPayMemberProjectService extends ServiceImpl<PayMemberProjectMapper
* @return
*/
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);
}
@@ -93,6 +110,11 @@ public class IPayMemberProjectService extends ServiceImpl<PayMemberProjectMapper
* @return
*/
public void deleteById(String id) {
PayMemberProject memberProjectOld = this.getById(id);
String year1 = memberProjectOld.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year1);
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
query.eq(PayMemberProjectSubitem::getProjectId, id);
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
@@ -109,6 +131,12 @@ public class IPayMemberProjectService extends ServiceImpl<PayMemberProjectMapper
* @return
*/
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<>();
query.in(PayMemberProjectSubitem::getProjectId, ids);
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.mapper.PayMemberProjectMapper;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.service.IPayMemberProjectService;
import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
@@ -80,6 +80,8 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
private PayMemberProjectMapper payMemberProjectMapper;
@Resource
private IPayMailBillService payMailBillService;
@Resource
private AnnualDataLockingService annualDataLockingService;
/**
* 保存
*/
@@ -89,6 +91,9 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
if (memberProject == null){
throw new JeroBootException("会员项目不存在");
}
String year = memberProject.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
String companyId = payMemberProjectSubitem.getCompanyId();
LambdaQueryWrapper<PayMemberProjectSubitem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMemberProjectSubitem::getProjectId,projectId);
@@ -97,8 +102,7 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
if (count>0){
throw new JeroBootException("会员单位已经存在");
}
// validMemberProjectSubitem(payMemberProjectSubitem);
validMemberProjectSubitemAdd(payMemberProjectSubitem);
validMemberProjectSubitemAdd(payMemberProjectSubitem,annualDataLocking);
//实收金额
payMemberProjectSubitem.setPaidAmount(new BigDecimal("0.00"));
//到账
@@ -160,8 +164,16 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
String id = payMemberProjectSubitem.getId();
PayMemberProjectSubitem payMemberProjectSubitem1 = getById(id);
if (payMemberProjectSubitem1 == null){
throw new JeroBootException("项目成员不存在");
}
PayMemberProject memberProject = memberProjectService.getById(payMemberProjectSubitem1.getProjectId());
if (memberProject == null){
throw new JeroBootException("会员项目不存在");
}
String year = memberProject.getParticularYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
// 项目为打包状态 || 到账=0 || 开票=0 || 邮寄=0
if(!Objects.equals(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem1.getCompanyId())
&& (Objects.equals(payMemberProjectSubitem.getPack(),PayProjectCommon.PACKAGING1)
@@ -203,21 +215,6 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
payMemberProjectSubitem.setMakeInvoice(payMemberProjectSubitem1.getMakeInvoice());
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());
if(!Objects.isNull(projectStatusVO)){
@@ -246,7 +243,7 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY3)){
payMemberProjectSubitem.setContractNo(null);
}
validMemberProjectSubitemEdit(payMemberProjectSubitem,payMemberProjectSubitem1);
validMemberProjectSubitemEdit(payMemberProjectSubitem,payMemberProjectSubitem1,annualDataLocking);
saveOrUpdate(payMemberProjectSubitem);
// 如果有邮寄信息更新邮寄联系人信息
String mailContactsId = payMemberProjectSubitem.getPostContactId();
@@ -255,13 +252,15 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
/**
* 校验会员项目成员
*
* @param payMemberProjectSubitem 会员项目成员
* @param annualDataLocking
*/
public void validMemberProjectSubitemAdd(PayMemberProjectSubitem payMemberProjectSubitem) {
public void validMemberProjectSubitemAdd(PayMemberProjectSubitem payMemberProjectSubitem, AnnualDataLocking annualDataLocking) {
List<String> errors = new ArrayList<>();
// 企业
try {
PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId());
PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId(), annualDataLocking);
if (Objects.isNull(chargeCompanyName)) {
throw new JeroBootException("企业名称为空!");
}
@@ -272,7 +271,7 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
}
// 联系人
try {
PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId());
PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId(), annualDataLocking);
if (Objects.isNull(contactsName)) {
throw new JeroBootException("联系人名称为空!");
}
@@ -283,7 +282,7 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
}
try {
// 联系人
PayContactsManagementTemporary postContactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId());
PayContactsManagementTemporary postContactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId(), annualDataLocking);
if (Objects.isNull(postContactsName)) {
throw new JeroBootException("邮寄联系人为空!");
}
@@ -310,41 +309,43 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
/**
* 校验会员项目成员
*
* @param payMemberProjectSubitem 会员项目成员
* @param annualDataLocking
*/
public void validMemberProjectSubitemEdit(PayMemberProjectSubitem payMemberProjectSubitem,PayMemberProjectSubitem payMemberProjectSubitemOld) {
public void validMemberProjectSubitemEdit(PayMemberProjectSubitem payMemberProjectSubitem, PayMemberProjectSubitem payMemberProjectSubitemOld, AnnualDataLocking annualDataLocking) {
// 企业id != 企业模板id 变更
if(!Objects.equals(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitemOld.getCompanyId())){
// 企业
PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId());
PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId(), annualDataLocking);
if(Objects.isNull(chargeCompanyName)){
throw new JeroBootException("企业名称为空!");
}
payMemberProjectSubitem.setCompanyTemporaryId(chargeCompanyName.getId());
payMemberProjectSubitem.setCompanyName(chargeCompanyName.getCompanyName());
companyManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyTemporaryId());
//companyManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyTemporaryId());
}
// 联系人id != 联系人模板id 变更
// 联系人
PayContactsManagementTemporary companyContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId());
PayContactsManagementTemporary companyContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId(), annualDataLocking);
if(Objects.isNull(companyContact)){
throw new JeroBootException("联系人名称为空!");
}
payMemberProjectSubitem.setCompanyContactTemporaryId(companyContact.getId());
payMemberProjectSubitem.setCompanyContactName(companyContact.getName());
contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyContactTemporaryId());
// contactsManagementTemporaryService.removeById(payMemberProjectSubitemOld.getCompanyContactTemporaryId());
// 邮寄联系人id != 邮寄联系人模板id 变更
if(!Objects.equals(payMemberProjectSubitem.getPostContactId(),payMemberProjectSubitemOld.getPostContactId())){
// 联系人
PayContactsManagementTemporary postContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId());
PayContactsManagementTemporary postContact = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId(), annualDataLocking);
if(Objects.isNull(postContact)){
throw new JeroBootException("邮寄联系人为空!");
}
payMemberProjectSubitem.setPostContactTemporaryId(postContact.getId());
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删除
*/
@@ -420,13 +374,13 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
PayMemberProjectSubitem payMemberProjectSubitem = getById(id);
//删除临时表数据
String companyId = payMemberProjectSubitem.getCompanyTemporaryId();
companyManagementTemporaryService.removeById(companyId);
//companyManagementTemporaryService.removeById(companyId);
String companyContactId = payMemberProjectSubitem.getCompanyContactTemporaryId();
contactsManagementTemporaryService.removeById(companyContactId);
// contactsManagementTemporaryService.removeById(companyContactId);
String postContactId = payMemberProjectSubitem.getPostContactTemporaryId();
contactsManagementTemporaryService.removeById(postContactId);
// contactsManagementTemporaryService.removeById(postContactId);
}
/**
@@ -452,6 +406,12 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
* @Exception
*/
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);
// 到账=0 || 开票=0 || 邮寄=0
if(!Objects.equals(payMemberProjectSubitem.getInAccount(), PayProjectCommon.IN_ACCOUNT0)
@@ -464,10 +424,10 @@ public class IPayMemberProjectSubitemService extends ServiceImpl<PayMemberProjec
// 如果已打报同步删除打包关联
LambdaUpdateWrapper<PayPackCompanyProject> update = new LambdaUpdateWrapper<>();
update.eq(PayPackCompanyProject::getProjectId,payMemberProjectSubitem.getId());
payPackCompanyProjectService.remove(update);
//payPackCompanyProjectService.remove(update);
// 删除企业联系人临时数据
companyManagementTemporaryService.removeById(payMemberProjectSubitem.getCompanyTemporaryId());
contactsManagementTemporaryService.removeByIds(Arrays.asList(payMemberProjectSubitem.getCompanyContactTemporaryId(),payMemberProjectSubitem.getPostContactTemporaryId()));
//companyManagementTemporaryService.removeById(payMemberProjectSubitem.getCompanyTemporaryId());
// contactsManagementTemporaryService.removeByIds(Arrays.asList(payMemberProjectSubitem.getCompanyContactTemporaryId(),payMemberProjectSubitem.getPostContactTemporaryId()));
}
/**
@@ -18,6 +18,8 @@ import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.mapper.TbMemberProjectMapper;
import com.jero.member.service.ITbMemberProjectService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.service.AnnualDataLockingService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -53,12 +55,16 @@ public class ITbMemberProjectService extends ServiceImpl<TbMemberProjectMapper,
private RolePermissionService rolePermissionService;
@Resource
private IPayMeetingService meetingService;
@Resource
private AnnualDataLockingService annualDataLockingService;
/**
* 保存
*/
public void add(TbMemberProject tbMemberProject) {
//一年只能有一个项目
String year = tbMemberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
check(year, null);
save(tbMemberProject);
}
@@ -80,10 +86,19 @@ public class ITbMemberProjectService extends ServiceImpl<TbMemberProjectMapper,
* 更新
*/
public void editById(TbMemberProject tbMemberProject) {
//一年只能有一个项目
String year = tbMemberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
String id = tbMemberProject.getId();
//一年只能有一个项目
check(year, id);
TbMemberProject memberProjectOld = this.getById(id);
String oldYear = memberProjectOld.getYear();
//判断用户是否能操作所选年份数据
annualDataLockingService.judgeUserYear(oldYear);
saveOrUpdate(tbMemberProject);
}
@@ -91,6 +106,11 @@ public class ITbMemberProjectService extends ServiceImpl<TbMemberProjectMapper,
* 通过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<>();
query.eq(TbMemberProjectSubitem::getProjectId, id);
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
@@ -111,6 +131,12 @@ public class ITbMemberProjectService extends ServiceImpl<TbMemberProjectMapper,
* 批量删除
*/
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<>();
query.in(TbMemberProjectSubitem::getProjectId, ids);
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
@@ -1,6 +1,4 @@
package com.jero.member.service;
import java.math.RoundingMode;
import java.util.*;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DatePattern;
@@ -11,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.common.ProjectCommon;
import com.jero.common.enums.PaymentStatusEnum;
import com.jero.common.exception.JeroBootException;
@@ -38,7 +37,10 @@ import com.jero.member.entity.TbMemberProject;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.enums.MemberStatusEnum;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.vo.*;
import com.jero.member.vo.CopyMemberVO;
import com.jero.member.vo.EditMemberBenefitsVO;
import com.jero.member.vo.QueryAggVO;
import com.jero.member.vo.TbMemberProjectSubitemExcelImport;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.payment.entity.PayConfirmPaymentRecord;
@@ -46,11 +48,15 @@ import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.service.impl.PayConfirmPaymentRecordService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.statistics.entity.MemberLineChartMap;
import com.jero.statistics.entity.MemberLineChartVO;
import com.jero.statistics.entity.MemberPieChartVO;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import com.jero.valid.group.ChargeNotice;
import com.jero.valid.group.Contract;
import org.apache.commons.collections.CollectionUtils;
@@ -58,17 +64,17 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import static freemarker.template.utility.NullArgumentException.check;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Description: 标协会员项目成员表
@@ -110,31 +116,26 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
private ISysBaseAPI sysBaseAPI;
@Resource
private PayMeetingSituationMapper payMeetingSituationMapper;
@Resource
private AnnualDataLockingService annualDataLockingService;
@Resource
private IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService;
@Resource
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
/**
* 保存
*/
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();
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<>();
wrapper.eq(TbMemberProjectSubitem::getProjectId, projectId);
wrapper.eq(TbMemberProjectSubitem::getCompanyId, companyId);
@@ -181,13 +182,13 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
// 来款方式为合同校验合同编号
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)) {
// 合同存在 && 合同状态不为草稿不为未通过 关联合同
payIncomeContractService.insertPayIncomeContract(payIncomeContract, tbMemberProjectSubitem.getId(), Integer.parseInt(PayProjectCommon.PROJECT_TYPE5));
// 关联了合同,判断合同是否打包更新项目打包状态添加打包
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<>();
update.eq(TbMemberProjectSubitem::getId, tbMemberProjectSubitem.getId());
update.set(TbMemberProjectSubitem::getPack, PayProjectCommon.PACKAGING1);
@@ -196,7 +197,13 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
}
}
}
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;
List<TbMemberProjectSubitem> insertList = new ArrayList<>();
List<String> errorMessage = new ArrayList<>();
@@ -252,6 +259,7 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
}else {
subitem.setPostContactId(postContact.getId());
}
setSubitemAdd(subitem,annualDataLocking);
}
}
@@ -272,10 +280,28 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
subitem.setAmountReceivable(new BigDecimal(amountReceivable));
}
//预估到账日期
if (ValidUtil.checkErrorList(errorList,"预估到账日期")) {
String estimatedArrivalDate = subitemExcel.getEstimatedArrivalDate();
subitem.setEstimatedArrivalDate(DateUtil.parseDate(estimatedArrivalDate));
// 预估到账日期
if (ValidUtil.checkErrorList(errorList, "预估到账日期")) {
String estimatedArrivalDateStr = subitemExcel.getEstimatedArrivalDate();
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();
@@ -402,11 +428,17 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
public void editById(TbMemberProjectSubitem tbMemberProjectSubitem) {
String subitemId = tbMemberProjectSubitem.getId();
TbMemberProjectSubitem subitemOld = getById(subitemId);
TbMemberProject memberProject = tbMemberProjectService.getById(subitemOld.getProjectId());
String oldYear = memberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
String companyId = tbMemberProjectSubitem.getCompanyId();
String companyIdOld = subitemOld.getCompanyId();
if (!Objects.equals(companyId,companyIdOld)){
throw new JeroBootException("会员单位不可变更");
}
setSubitemEdit(tbMemberProjectSubitem,subitemOld,annualDataLocking);
// 校验项目是否已关联合同
PayIncomeContract payIncomeContract = payIncomeContractService.checkPayIncomeContractAssociated(subitemId);
if (!Objects.isNull(payIncomeContract)) {
@@ -441,6 +473,58 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
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删除
*/
@@ -469,6 +553,11 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
* @Exception
*/
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<>();
wrapper1.eq(PayPaymentRecord::getProjectId,id);
@@ -524,9 +613,18 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
}
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 effectiveDateStr = tbMemberProjectSubitem.getEffectiveDateStr();
String estimatedArrivalDateBegin = tbMemberProjectSubitem.getEstimatedArrivalDate_begin();
String estimatedArrivalDateEnd = tbMemberProjectSubitem.getEstimatedArrivalDate_end();
if (strings != null){
queryWrapper.like("pcm.company_name",strings[0]);
}
if (StringUtils.isNotBlank(invalidationDateStr)){
DateTime invalidationDate = DateUtil.parse(invalidationDateStr, DatePattern.NORM_MONTH_PATTERN);
queryWrapper.eq("year(invalidation_date)",invalidationDate.year());
@@ -537,6 +635,12 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
queryWrapper.eq("year(effective_date)",effectiveDate.year());
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();
if (!rolePermissionService.getRolePermission("safeguardStardsMember:search")) {
queryWrapper.eq("tmp.director_id",sysUser.getId());
@@ -666,6 +770,9 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
String projectId = copyMemberVO.getProjectId();
String id = copyMemberVO.getId();
TbMemberProject memberProject = tbMemberProjectService.getById(projectId);
String oldYear = memberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
copyOperation(memberProject, id);
}
@@ -696,6 +803,9 @@ public class ITbMemberProjectSubitemService extends ServiceImpl<TbMemberProjectS
String projectId = copyMemberVO.getProjectId();
String ids = copyMemberVO.getIds();
TbMemberProject memberProject = tbMemberProjectService.getById(projectId);
String oldYear = memberProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(oldYear);
for (String id : ids.split(",")) {
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;
/**预估到账日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM")
@DateTimeFormat(pattern="yyyy-MM")
@ApiModelProperty(value = "预估到账日期")
@Excel(name = "预估到账日期", width = 15)
private Date estimatedArrivalDate;
@@ -61,9 +61,9 @@ public class TbMemberProjectSubitemExcelImport {
private String amountReceivable;
/**预估到账日期*/
// @NotBlank(message = "预估到账日期不能为空")
// @Pattern(regexp = "^\\d{4}-\\d{1,2}-\\d{1,2}$",message = "预估到账日期格式错误")
@ApiModelProperty(value = "预估到账日期")
@NotBlank(message = "预估到账日期不能为空")
@Pattern(regexp = "^\\d{4}-\\d{1,2}-\\d{1,2}$",message = "预估到账日期格式错误")
@Excel(name = "预估到账日期", width = 15)
private String estimatedArrivalDate;
@@ -7,6 +7,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.pack.entity.PayPackCompany;
@@ -119,6 +121,12 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
if(Objects.isNull(p.getPackChargeTotal())){
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);
}
@@ -144,6 +152,10 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
@ApiOperation(value="打包企业管理-添加", notes="打包企业管理-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayPackCompany payPackCompany) {
if (!StringUtils.isBlank(payPackCompany.getEstimatedArrivalDate())) {
payPackCompany.setEstimatedArrivalDate(payPackCompany.getEstimatedArrivalDate() + "-01");
}
StringBuilder msg = ValidUtil.validateAll(payPackCompany);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -163,6 +175,9 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
@ApiOperation(value="打包企业管理-编辑", notes="打包企业管理-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayPackCompany payPackCompany) {
if (!StringUtils.isBlank(payPackCompany.getEstimatedArrivalDate())) {
payPackCompany.setEstimatedArrivalDate(payPackCompany.getEstimatedArrivalDate() + "-01");
}
StringBuilder msg = ValidUtil.validateAll(payPackCompany);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -292,7 +307,15 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
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
@@ -351,6 +374,11 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
if (Objects.isNull(p.getPackChargeTotal())) {
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;
@Resource
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("批量取消打包成功!");
}
/**
* 编辑
*
* @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
*
@@ -336,18 +259,6 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
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年历史数据
*/
@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.entity.PayCommonProject;
import org.apache.ibatis.annotations.Param;
@@ -56,4 +55,8 @@ public interface PayPackCompanyMapper extends BaseMapper<PayPackCompany> {
String getConfirmAmountMoney(@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 id="queryPageList" resultType="com.jero.pack.entity.PayPackCompany">
select ppc.*,pcmt.phone,pcmt.email from pay_pack_company ppc
LEFT JOIN pay_payment_record ppr ON ppr.project_id = ppc.id
LEFT JOIN pay_company_management pcm on ppc.company_id = pcm.id
LEFT JOIN pay_contacts_management_temporary pcmt ON pcmt.id = ppc.company_contact_temporary_id
<where>
@@ -109,5 +108,18 @@
</where>
</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>
@@ -30,13 +30,14 @@
( project.phone = '' or project.phone IS NULL, pcmt.phone, project.phone ) AS phone,
IF
( project.email = '' or project.email IS NULL, pcmt.email, project.email ) AS email,
affirm_income
affirm_income,
project.sort_no
from
(
<!-- 普通项目-->
select c.id,c.charge_project,c.invoice_amount, c.charge_use, c.principal_id,su.realname as principal_name,c.contacts_temporary_id,c.contacts_temporary_name,c.charge_company_temporary_name,c.receivable_amount,
c.paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType,pcm.phone,pcm.email,affirm_income
,c.mail_contacts_id,c.mail_contacts_temporary_id,c.mail_contacts_temporary_name
,c.mail_contacts_id,c.mail_contacts_temporary_id,c.mail_contacts_temporary_name, NULL as sort_no
from pay_common_project c
left join sys_user su on c.principal_id = su.id
LEFT JOIN pay_contacts_management pcm ON c.contacts_temporary_id = pcm.id
@@ -56,7 +57,7 @@
UNION ALL
select gsub.id,g.working_group_project,gsub.invoice_amount, gsub.charge_use, g.principal_id_a,su.realname,gsubc.contacts_temporary_id as contacts_temporary_id,gsubc.contacts_temporary_name as contacts_temporary_name_one,gsub.charge_company_temporary_name,gsub.receivable_amount,
gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,pcm.phone,pcm.email,affirm_income
,gsub.mail_contacts_id,gsub.mail_contacts_temporary_id,gsub.mail_contacts_temporary_name
,gsub.mail_contacts_id,gsub.mail_contacts_temporary_id,gsub.mail_contacts_temporary_name,g.sort_no
from pay_working_group g
left join sys_user su on g.principal_id_a = su.id
inner join pay_working_group_subitem gsub on g.id = gsub.working_group_id
@@ -77,7 +78,7 @@
UNION ALL
select sit.id,meeting.meeting_name,sit.invoice_amount,sit.charge_use, meeting.director_id, su.realname,sit.company_contact_temporary_id AS contacts_temporary_id,sit.company_contact_name,sit.company_name,sit.amount_receivable,
sit.paid_amount,sit.need_invoice,sit.pack,sit.in_account,sit.make_invoice,sit.mail,sit.create_time,3,pcm.phone,pcm.email,affirm_income
,sit.post_contact_id as mail_contacts_id,sit.post_contact_temporary_id as mail_contacts_temporary_id,sit.post_contact_name as mail_contacts_temporary_name
,sit.post_contact_id as mail_contacts_id,sit.post_contact_temporary_id as mail_contacts_temporary_id,sit.post_contact_name as mail_contacts_temporary_name, NULL as sort_no
from pay_meeting meeting
left join sys_user su on meeting.director_id = su.id
inner join pay_meeting_situation sit on meeting.id = sit.meeting_id
@@ -98,7 +99,7 @@
UNION ALL
select msub.id,pmp.project_name,msub.invoice_amount,msub.charge_use,pmp.director_id, su.realname,msub.company_contact_temporary_id AS contacts_temporary_id,msub.company_contact_name,msub.company_name,msub.amount_receivable,
msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4,pcm.phone,pcm.email,affirm_income
,msub.post_contact_id as mail_contacts_id,msub.post_contact_temporary_id as mail_contacts_temporary_id,msub.post_contact_name as mail_contacts_temporary_name
,msub.post_contact_id as mail_contacts_id,msub.post_contact_temporary_id as mail_contacts_temporary_id,msub.post_contact_name as mail_contacts_temporary_name, NULL as sort_no
from pay_member_project pmp
left join sys_user su on pmp.director_id = su.id
inner join pay_member_project_subitem msub on pmp.id = msub.project_id
@@ -118,7 +119,7 @@
UNION ALL
select tmsub.id,tmember.project_name,tmsub.invoice_amount,tmsub.charge_use,tmember.director_id, su.realname,'',pcm.name as contacts_temporary_name,tmsub.company_name,tmsub.amount_receivable,
tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5,pcm.phone,pcm.email,affirm_income
,null as mail_contacts_id,null as mail_contacts_temporary_id,null as mail_contacts_temporary_name
,null as mail_contacts_id,null as mail_contacts_temporary_id,null as mail_contacts_temporary_name, NULL as sort_no
from tb_member_project tmember
left join sys_user su on tmember.director_id = su.id
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
@@ -138,7 +139,7 @@
UNION ALL
select tcp.id,tmember.project_name,tcp.invoice_amount,tcp.charge_use,tmember.director_id, su.realname,'',pcm.name as contacts_temporary_name,tcp.company_name,tcp.amount_receivable,
tcp.paid_amount,tcp.invoice_requirements,tcp.pack,tcp.in_account,tcp.make_invoice,tcp.mail,tcp.create_time,6,pcm.phone,pcm.email,affirm_income
,null as mail_contacts_id,null as mail_contacts_temporary_id,null as mail_contacts_temporary_name
,null as mail_contacts_id,null as mail_contacts_temporary_id,null as mail_contacts_temporary_name, NULL as sort_no
from tb_member_project tmember
left join sys_user su on tmember.director_id = su.id
inner join tb_certificate_payment tcp on tmember.id = tcp.project_id
@@ -166,7 +167,19 @@
<if test="paymentDate != null and paymentDate != ''">
AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate}
</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 id="queryPackListAll" resultType="com.jero.project.entity.PayCommonProject">
SELECT * FROM (
@@ -3,6 +3,7 @@ package com.jero.pack.service.impl;
import cn.hutool.core.thread.ThreadUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.ManagementMessageEnums;
@@ -16,16 +17,22 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.config.StaticConfig;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.meeting.common.MeetingSubitemCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.member.entity.PayMemberProject;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbCertificatePayment;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.enums.MemberStatusEnum;
import com.jero.member.mapper.PayMemberProjectSubitemMapper;
import com.jero.member.mapper.TbCertificatePaymentMapper;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.service.IPayMemberProjectService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.common.PackCommon;
@@ -37,12 +44,14 @@ import com.jero.pack.service.IPayPackCompanyService;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.pack.vo.PayProjectExcel;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.mapper.PayCommonProjectMapper;
import com.jero.project.mapper.PayWorkingGroupMapper;
import com.jero.project.mapper.PayWorkingGroupSubItemMapper;
import com.jero.project.service.AnnualDataLockingService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@@ -101,7 +110,14 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
private ISysBaseAPI sysBaseAPI;
@Resource
private IPayMemberProjectService payMemberProjectService;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Resource
private IPayMeetingService meetingService;
@Resource
private IPayMeetingSituationService meetingSituationService;
@Resource
private AnnualDataLockingService annualDataLockingService;
@Override
public List<PayCommonProject> queryListAll(PayPackCompanyProjectInput input) {
@@ -120,7 +136,8 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
if(Objects.isNull(payPackCompany)){
throw new JeroBootException("打包企业不存在");
}
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payPackCompany.getPackYear());
if(StringUtils.isBlank(payPackCompanyProject.getProjectIds())){
throw new JeroBootException("请选择项目");
}
@@ -150,6 +167,11 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
payPackCompanyProjectNew.setPackId(payPackCompanyProject.getPackId());
payPackCompanyProjectNew.setCome(PackCommon.COME2);
listPayPackCompanyProject.add(payPackCompanyProjectNew);
// 生成会员有效期
TbMemberProjectSubitem tbMemberProjectSubitem = tbMemberProjectSubitemService.getById(s1);
if (!Objects.isNull(tbMemberProjectSubitem)) {
tbMemberProjectSubitemService.generateValidDate(s1);
}
}
LambdaQueryWrapper<PayPackCompanyProject> query = new LambdaQueryWrapper<>();
query.in(PayPackCompanyProject::getProjectId, Arrays.asList(payPackCompanyProject.getProjectIds()));
@@ -297,6 +319,10 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
throw new JeroBootException("不存在打包项目!");
}
PayPackCompanyProject packCompanyProject = listPayPackCompanyProject.get(0);
String packId = packCompanyProject.getPackId();
PayPackCompany payPackCompany = payPackCompanyService.getById(packId);
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payPackCompany.getPackYear());
Integer projectType = packCompanyProject.getProjectType();
if (Objects.equals(projectType, Integer.parseInt(PayProjectCommon.PROJECT_TYPE5))||
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)){
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());
payPackCompanyProjectService.removeById(packCompanyProject.getId());
@@ -394,145 +431,145 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
@Override
public void updateHistory() {
LambdaQueryWrapper<PayPackCompany> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayPackCompany::getPackYear,"2024");
List<PayPackCompany> packCompanyList = payPackCompanyService.list(wrapper);
List<String> packCompanyIdList = packCompanyList.stream().map(PayPackCompany::getId).collect(Collectors.toList());
LambdaQueryWrapper<PayPackCompanyProject> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.in(PayPackCompanyProject::getPackId,packCompanyIdList);
List<PayPackCompanyProject> list = this.list(wrapper1);
ExecutorService fixedThreadPool = ThreadUtil.newExecutor(10);
for (PayPackCompanyProject project : list) {
fixedThreadPool.submit(() -> {
String projectId = project.getProjectId();
String projectType = project.getProjectType().toString();
// 普通项目
if (PayIncomeContractCommon.PROJECT_TYPE1.equals(projectType)){
PayCommonProject old = payCommonProjectMapper.selectById(projectId);
if (old == null) {
throw new JeroBootException("项目不存在");
}
if (!new BigDecimal("0.00").equals(old.getReceivableAmount())) {
return;
}
PayCommonProject payCommonProject = null;
//普通项目管理-添加
List<JSONObject> jsonObjects = sysBaseAPI.getLogByRequestParam(projectId);
if (jsonObjects.isEmpty()) {
return;
}
for (JSONObject jsonObject : jsonObjects) {
String logContent = jsonObject.getString("logContent");
if ("普通项目管理-添加".equals(logContent)) {
String requestParam = jsonObject.getString("requestParam");
requestParam = requestParam.substring(1, requestParam.length() - 1);
payCommonProject = JSONObject.parseObject(requestParam, PayCommonProject.class);
}
}
if (payCommonProject == null) {
return;
}
PayCommonProject project1 = new PayCommonProject();
project1.setId(projectId);
project1.setReceivableAmount(payCommonProject.getReceivableAmount());
project1.setNoTaxAmount(payCommonProject.getNoTaxAmount());
project1.setTax(payCommonProject.getTax());
payCommonProjectMapper.updateById(project1);
}else if (PayIncomeContractCommon.PROJECT_TYPE2.equals(projectType)){
// 工作组项目
//工作组成员-修改 工作组成员-添加
PayWorkingGroupSubItem old1 = payWorkingGroupSubItemMapper.selectById(projectId);
if (old1 == null) {
throw new JeroBootException("项目不存在");
}
if (!new BigDecimal("0.00").equals(old1.getReceivableAmount())) {
return;
}
String workingGroupId = old1.getWorkingGroupId();
PayWorkingGroup payWorkingGroup = payWorkingGroupMapper.selectById(workingGroupId);
BigDecimal yearChargeA = payWorkingGroup.getYearChargeA();
if (yearChargeA == null || new BigDecimal("0.00").equals(yearChargeA)) {
yearChargeA = new BigDecimal("0.00");
}
PayWorkingGroupSubItem payWorking = null;
List<JSONObject> jsonObjects1 = sysBaseAPI.getLogByRequestParam(projectId);
for (JSONObject jsonObject : jsonObjects1) {
String logContent = jsonObject.getString("logContent");
if ("工作组成员-添加".equals(logContent) || "工作组成员-修改".equals(logContent) || "企业端-工作组成员-修改".equals(logContent)) {
String requestParam = jsonObject.getString("requestParam");
requestParam = requestParam.substring(1, requestParam.length() - 1);
PayWorkingGroupSubItem obj = JSONObject.parseObject(requestParam, PayWorkingGroupSubItem.class);
BigDecimal receivableAmount = obj.getReceivableAmount();
if (new BigDecimal("0.00").equals(receivableAmount) || receivableAmount == null) {
return;
} else {
payWorking = obj;
}
}
}
if (payWorking == null) {
PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem();
project2.setId(projectId);
project2.setReceivableAmount(yearChargeA);
BigDecimal noTaxAmount = yearChargeA.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
project2.setNoTaxAmount(noTaxAmount);
project2.setTax(yearChargeA.subtract(noTaxAmount));
payWorkingGroupSubItemMapper.updateById(project2);
} else {
PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem();
project2.setId(projectId);
project2.setReceivableAmount(payWorking.getReceivableAmount());
project2.setNoTaxAmount(payWorking.getNoTaxAmount());
project2.setTax(payWorking.getTax());
payWorkingGroupSubItemMapper.updateById(project2);
}
}else if (PayIncomeContractCommon.PROJECT_TYPE4.equals(projectType)){
//会员项目
PayMemberProjectSubitem old2 = payMemberProjectSubitemMapper.selectById(projectId);
if (old2 == null) {
throw new JeroBootException("项目不存在");
}
if (!new BigDecimal("0.00").equals(old2.getAmountReceivable())) {
return;
}
String memberProjectId = old2.getProjectId();
PayMemberProject memberProject = payMemberProjectService.getById(memberProjectId);
PayMemberProjectSubitem member = new PayMemberProjectSubitem();
member.setId(projectId);
member.setAmountReceivable(memberProject.getChargeStandard());
BigDecimal noTaxAmount = memberProject.getChargeStandard().divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
member.setNoTaxAmount(noTaxAmount);
member.setTax(memberProject.getChargeStandard().subtract(noTaxAmount));
payMemberProjectSubitemMapper.updateById(member);
}else if (PayIncomeContractCommon.PROJECT_TYPE5.equals(projectType)){
//标协会员
TbMemberProjectSubitem old3 = tbMemberProjectSubitemMapper.selectById(projectId);
if (old3 == null) {
throw new JeroBootException("项目不存在");
}
if (!new BigDecimal("0.00").equals(old3.getAmountReceivable())) {
return;
}
TbMemberProjectSubitem tbMember = new TbMemberProjectSubitem();
Integer memberNature = old3.getMemberNature();
BigDecimal amountReceivable = null;
if (memberNature.equals(1)) {
amountReceivable = new BigDecimal("5000");
} else {
amountReceivable = new BigDecimal("2000");
}
tbMember.setId(projectId);
tbMember.setAmountReceivable(amountReceivable);
BigDecimal noTaxAmount1 = amountReceivable.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
tbMember.setNoTaxAmount(noTaxAmount1);
tbMember.setTax(amountReceivable.subtract(noTaxAmount1));
tbMemberProjectSubitemMapper.updateById(tbMember);
}
});
}
//LambdaQueryWrapper<PayPackCompany> wrapper = new LambdaQueryWrapper<>();
//wrapper.eq(PayPackCompany::getPackYear,"2024");
//List<PayPackCompany> packCompanyList = payPackCompanyService.list(wrapper);
//List<String> packCompanyIdList = packCompanyList.stream().map(PayPackCompany::getId).collect(Collectors.toList());
//
//LambdaQueryWrapper<PayPackCompanyProject> wrapper1 = new LambdaQueryWrapper<>();
//wrapper1.in(PayPackCompanyProject::getPackId,packCompanyIdList);
//List<PayPackCompanyProject> list = this.list(wrapper1);
//ExecutorService fixedThreadPool = ThreadUtil.newExecutor(10);
//for (PayPackCompanyProject project : list) {
// fixedThreadPool.submit(() -> {
// String projectId = project.getProjectId();
// String projectType = project.getProjectType().toString();
// // 普通项目
// if (PayIncomeContractCommon.PROJECT_TYPE1.equals(projectType)){
// PayCommonProject old = payCommonProjectMapper.selectById(projectId);
// if (old == null) {
// throw new JeroBootException("项目不存在");
// }
// if (!new BigDecimal("0.00").equals(old.getReceivableAmount())) {
// return;
// }
// PayCommonProject payCommonProject = null;
// //普通项目管理-添加
// List<JSONObject> jsonObjects = sysBaseAPI.getLogByRequestParam(projectId);
// if (jsonObjects.isEmpty()) {
// return;
// }
// for (JSONObject jsonObject : jsonObjects) {
// String logContent = jsonObject.getString("logContent");
// if ("普通项目管理-添加".equals(logContent)) {
// String requestParam = jsonObject.getString("requestParam");
// requestParam = requestParam.substring(1, requestParam.length() - 1);
// payCommonProject = JSONObject.parseObject(requestParam, PayCommonProject.class);
// }
// }
// if (payCommonProject == null) {
// return;
// }
// PayCommonProject project1 = new PayCommonProject();
// project1.setId(projectId);
// project1.setReceivableAmount(payCommonProject.getReceivableAmount());
// project1.setNoTaxAmount(payCommonProject.getNoTaxAmount());
// project1.setTax(payCommonProject.getTax());
// payCommonProjectMapper.updateById(project1);
// }else if (PayIncomeContractCommon.PROJECT_TYPE2.equals(projectType)){
// // 工作组项目
// //工作组成员-修改 工作组成员-添加
// PayWorkingGroupSubItem old1 = payWorkingGroupSubItemMapper.selectById(projectId);
// if (old1 == null) {
// throw new JeroBootException("项目不存在");
// }
// if (!new BigDecimal("0.00").equals(old1.getReceivableAmount())) {
// return;
// }
// String workingGroupId = old1.getWorkingGroupId();
// PayWorkingGroup payWorkingGroup = payWorkingGroupMapper.selectById(workingGroupId);
// BigDecimal yearChargeA = payWorkingGroup.getYearChargeA();
// if (yearChargeA == null || new BigDecimal("0.00").equals(yearChargeA)) {
// yearChargeA = new BigDecimal("0.00");
// }
// PayWorkingGroupSubItem payWorking = null;
// List<JSONObject> jsonObjects1 = sysBaseAPI.getLogByRequestParam(projectId);
// for (JSONObject jsonObject : jsonObjects1) {
// String logContent = jsonObject.getString("logContent");
// if ("工作组成员-添加".equals(logContent) || "工作组成员-修改".equals(logContent) || "企业端-工作组成员-修改".equals(logContent)) {
// String requestParam = jsonObject.getString("requestParam");
// requestParam = requestParam.substring(1, requestParam.length() - 1);
// PayWorkingGroupSubItem obj = JSONObject.parseObject(requestParam, PayWorkingGroupSubItem.class);
// BigDecimal receivableAmount = obj.getReceivableAmount();
// if (new BigDecimal("0.00").equals(receivableAmount) || receivableAmount == null) {
// return;
// } else {
// payWorking = obj;
// }
// }
// }
// if (payWorking == null) {
//
// PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem();
// project2.setId(projectId);
//
// project2.setReceivableAmount(yearChargeA);
// BigDecimal noTaxAmount = yearChargeA.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
// project2.setNoTaxAmount(noTaxAmount);
// project2.setTax(yearChargeA.subtract(noTaxAmount));
// payWorkingGroupSubItemMapper.updateById(project2);
// } else {
// PayWorkingGroupSubItem project2 = new PayWorkingGroupSubItem();
// project2.setId(projectId);
// project2.setReceivableAmount(payWorking.getReceivableAmount());
// project2.setNoTaxAmount(payWorking.getNoTaxAmount());
// project2.setTax(payWorking.getTax());
// payWorkingGroupSubItemMapper.updateById(project2);
// }
// }else if (PayIncomeContractCommon.PROJECT_TYPE4.equals(projectType)){
// //会员项目
// PayMemberProjectSubitem old2 = payMemberProjectSubitemMapper.selectById(projectId);
// if (old2 == null) {
// throw new JeroBootException("项目不存在");
// }
// if (!new BigDecimal("0.00").equals(old2.getAmountReceivable())) {
// return;
// }
// String memberProjectId = old2.getProjectId();
// PayMemberProject memberProject = payMemberProjectService.getById(memberProjectId);
// PayMemberProjectSubitem member = new PayMemberProjectSubitem();
// member.setId(projectId);
// member.setAmountReceivable(memberProject.getChargeStandard());
// BigDecimal noTaxAmount = memberProject.getChargeStandard().divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
// member.setNoTaxAmount(noTaxAmount);
// member.setTax(memberProject.getChargeStandard().subtract(noTaxAmount));
// payMemberProjectSubitemMapper.updateById(member);
// }else if (PayIncomeContractCommon.PROJECT_TYPE5.equals(projectType)){
// //标协会员
// TbMemberProjectSubitem old3 = tbMemberProjectSubitemMapper.selectById(projectId);
// if (old3 == null) {
// throw new JeroBootException("项目不存在");
// }
// if (!new BigDecimal("0.00").equals(old3.getAmountReceivable())) {
// return;
// }
// TbMemberProjectSubitem tbMember = new TbMemberProjectSubitem();
// Integer memberNature = old3.getMemberNature();
// BigDecimal amountReceivable = null;
// if (memberNature.equals(1)) {
// amountReceivable = new BigDecimal("5000");
// } else {
// amountReceivable = new BigDecimal("2000");
// }
// tbMember.setId(projectId);
// tbMember.setAmountReceivable(amountReceivable);
// BigDecimal noTaxAmount1 = amountReceivable.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
// tbMember.setNoTaxAmount(noTaxAmount1);
// tbMember.setTax(amountReceivable.subtract(noTaxAmount1));
// tbMemberProjectSubitemMapper.updateById(tbMember);
// }
// });
//}
//if (!fixedThreadPool.isShutdown()) {
// fixedThreadPool.shutdown();
//}
@@ -540,5 +577,19 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
// fixedThreadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
//} 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.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.common.ProjectCommon;
import com.jero.common.enums.PaymentStatusEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.vo.ProjectStatusVO;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
@@ -17,28 +13,25 @@ import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.mapper.PayPackCompanyMapper;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.statistics.entity.AllMoney;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @Description: pay_pack_company
@@ -63,6 +56,8 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
private IPayMailBillProjectService payMailBillProjectService;
@Resource
private IPayMailBillService payMailBillService;
@Resource
private AnnualDataLockingService annualDataLockingService;
@Override
public IPage<PayPackCompany> queryPageList(Page<PayPackCompany> page, PayPackCompany payPackCompany) {
@@ -72,10 +67,13 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
@Override
@Transactional
public PayPackCompany addPayPackCompany(PayPackCompany payPackCompany) {
String packYear = payPackCompany.getPackYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(packYear);
try {
LambdaQueryWrapper<PayPackCompany> query = new LambdaQueryWrapper<>();
query.eq(PayPackCompany::getCompanyId,payPackCompany.getCompanyId());
query.eq(PayPackCompany::getPackYear,payPackCompany.getPackYear());
query.eq(PayPackCompany::getPackYear, packYear);
PayPackCompany payPackCompanyNew = payPackCompanyService.getOne(query);
if(!Objects.isNull(payPackCompanyNew)){
throw new JeroBootException("该年份下已存在此打包企业!");
@@ -84,7 +82,7 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
log.error("",e);
throw new JeroBootException("该年份下已存在此打包企业!");
}
setPayPackCompanyAdd(payPackCompany);
setPayPackCompanyAdd(payPackCompany,annualDataLocking);
payPackCompany.setPackPrincipalName(sysUserService.getById(payPackCompany.getPackPrincipalId()).getRealname());
payPackCompanyService.save(payPackCompany);
return payPackCompany;
@@ -94,6 +92,11 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
@Transactional
public void editPayPackCompany(PayPackCompany payPackCompany) {
PayPackCompany payPackCompanyOld = payPackCompanyService.getById(payPackCompany.getId());
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payPackCompanyOld.getPackYear());
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking1 = annualDataLockingService.judgeUserYear(payPackCompany.getPackYear());
if(Objects.isNull(payPackCompanyOld)){
throw new JeroBootException("打包企业不存在!");
}
@@ -114,7 +117,7 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
}
payPackCompany.setPackPrincipalName(sysUserService.getById(payPackCompany.getPackPrincipalId()).getRealname());
setPayPackCompanyEdit(payPackCompany,payPackCompanyOld);
setPayPackCompanyEdit(payPackCompany,payPackCompanyOld,annualDataLocking);
payPackCompanyService.updateById(payPackCompany);
}
@@ -156,23 +159,23 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
* @Return
* @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)){
throw new JeroBootException("企业名称为空!");
}
payPackCompany.setCompanyTemporaryId(chargeCompanyName.getId());
payPackCompany.setCompanyTemporaryName(chargeCompanyName.getCompanyName());
// 企业联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getCompanyContactId());
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getCompanyContactId(), annualDataLocking);
if(Objects.isNull(contactsName)){
throw new JeroBootException("企业联系人名称为空!");
}
payPackCompany.setCompanyContactTemporaryId(contactsName.getId());
payPackCompany.setCompanyContactTemporaryName(contactsName.getName());
// 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getPackContactId());
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getPackContactId(), annualDataLocking);
if(Objects.isNull(mailContactsName)){
throw new JeroBootException("邮寄联系人名称为空!");
}
@@ -193,41 +196,41 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
* @Return
* @Exception
*/
private PayPackCompany setPayPackCompanyEdit(PayPackCompany payPackCompany,PayPackCompany payPackCompanyOld){
private PayPackCompany setPayPackCompanyEdit(PayPackCompany payPackCompany, PayPackCompany payPackCompanyOld, AnnualDataLocking annualDataLocking){
if(!Objects.equals(payPackCompanyOld.getCompanyTemporaryId(),payPackCompany.getCompanyId())){
// 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payPackCompany.getCompanyId());
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payPackCompany.getCompanyId(), annualDataLocking);
if(Objects.isNull(chargeCompanyName)){
throw new JeroBootException("企业名称为空!");
}
payPackCompany.setCompanyTemporaryId(chargeCompanyName.getId());
payPackCompany.setCompanyTemporaryName(chargeCompanyName.getCompanyName());
payCompanyManagementTemporaryService.removeById(payPackCompanyOld.getCompanyTemporaryId());
//payCompanyManagementTemporaryService.removeById(payPackCompanyOld.getCompanyTemporaryId());
}else{
payPackCompany.setCompanyId(payPackCompanyOld.getCompanyId());
}
// 企业联系人
if(!Objects.equals(payPackCompanyOld.getCompanyContactTemporaryId(),payPackCompany.getCompanyContactId())){
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getCompanyContactId());
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getCompanyContactId(), annualDataLocking);
if(Objects.isNull(contactsName)){
throw new JeroBootException("企业联系人名称为空!");
}
payPackCompany.setCompanyContactTemporaryId(contactsName.getId());
payPackCompany.setCompanyContactTemporaryName(contactsName.getName());
payContactsManagementTemporaryService.removeById(payPackCompanyOld.getCompanyContactTemporaryId());
// payContactsManagementTemporaryService.removeById(payPackCompanyOld.getCompanyContactTemporaryId());
}else{
payPackCompany.setCompanyContactId(payPackCompanyOld.getCompanyContactId());
}
// 打包联系人
if(!Objects.equals(payPackCompanyOld.getPackContactTemporaryId(),payPackCompany.getPackContactId())){
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getPackContactId());
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getPackContactId(), annualDataLocking);
if(Objects.isNull(mailContactsName)){
throw new JeroBootException("打包联系人名称为空!");
}
payPackCompany.setPackContactTemporaryId(mailContactsName.getId());
payPackCompany.setPackContactTemporaryName(mailContactsName.getName());
payContactsManagementTemporaryService.removeById(payPackCompanyOld.getPackContactTemporaryId());
// payContactsManagementTemporaryService.removeById(payPackCompanyOld.getPackContactTemporaryId());
}else{
payPackCompany.setPackContactId(payPackCompanyOld.getPackContactId());
}
@@ -15,9 +15,11 @@ import com.jero.member.entity.TbCertificatePayment;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.ITbCertificatePaymentService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.payment.entity.PayConfirmPaymentRecord;
import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.vo.EditBillTypeParam;
import com.jero.payment.vo.EditReceivableAmountParam;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.vo.PayCommonProjectOutput;
import com.jero.standards.memberinfo.entity.MemberInfo;
@@ -25,6 +27,7 @@ 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.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@@ -194,8 +197,22 @@ public class PayPaymentRecordController extends JeroController<PayPaymentRecord,
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 = "编辑开票类型")
@RequiresPermissions("packProject:changeInvoiceInfo")
@@ -51,7 +51,8 @@ public interface IPayPaymentCheckService extends IService<PayPaymentRecordSub> {
* @param amountReceivable 应收
* @param paidAmount 实收
* @param paymentStatus 缴费状态
* @param changeReceivableAmountFlag
* @return
*/
String getPaymentStatus(BigDecimal amountReceivable,BigDecimal paidAmount,String paymentStatus);
String getPaymentStatus(BigDecimal amountReceivable, BigDecimal paidAmount, String paymentStatus, boolean changeReceivableAmountFlag);
}
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.vo.EditBillTypeParam;
import com.jero.payment.vo.EditReceivableAmountParam;
import com.jero.payment.vo.TbCheckVo;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.vo.PayCommonProjectOutput;
@@ -109,6 +110,13 @@ public interface IPayPaymentRecordService extends IService<PayPaymentRecord> {
* @param payPaymentRecord
*/
void editAmountReceived(PayPaymentRecord payPaymentRecord);
/**
* 编辑待确收金额
* @param editReceivableAmountParam
*/
void editReceivableAmount(EditReceivableAmountParam editReceivableAmountParam);
/**
* 标协会员项目来款推送到标协项目
* @param typr5List
@@ -16,7 +16,6 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
@@ -531,7 +530,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
payPaymentRecords.add(payPaymentRecord);
payPaymentRecordService.addAmountReceived(payPaymentRecords,ProjectCommon.PAYMENT_FLAG2,"check");
}else{
paymentStatus = getPaymentStatus(payCommonProject.getReceivableAmount(), payCommonProject.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode());//缴费状态
paymentStatus = getPaymentStatus(payCommonProject.getReceivableAmount(), payCommonProject.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode(), false);//缴费状态
payCommonProject.setPaymentStatus(paymentStatus);
//更新主列表
payCommonProjectMapper.updateById(payCommonProject);
@@ -555,7 +554,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
payPaymentRecords.add(payPaymentRecord);
payPaymentRecordService.addAmountReceived(payPaymentRecords,ProjectCommon.PAYMENT_FLAG2,"check");
}else{
paymentStatus = getPaymentStatus(payWorking.getReceivableAmount(), payWorking.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode());//缴费状态
paymentStatus = getPaymentStatus(payWorking.getReceivableAmount(), payWorking.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode(), false);//缴费状态
payWorking.setPaymentStatus(paymentStatus);
//更新主列表
payWorkingGroupSubItemMapper.updateById(payWorking);
@@ -563,6 +562,9 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
project = payWorkingGroup.getWorkingGroupProject();
checkSendMessage(payPaymentRecord.getCreateBy(), payPaymentRecord.getProjectId(),project, String.valueOf(payPaymentRecord.getProjectType()));
}
// 更新审核状态为已审核
payWorking.setCheckPaymentStatus(PayProjectCommon.IS_CHECK_PAY_MENT);
payWorkingGroupSubItemMapper.updateById(payWorking);
break;
//会员项目
@@ -579,7 +581,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
payPaymentRecords.add(payPaymentRecord);
payPaymentRecordService.addAmountReceived(payPaymentRecords,ProjectCommon.PAYMENT_FLAG2,"check");
}else{
paymentStatus = getPaymentStatus(member.getAmountReceivable(), member.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode());//缴费状态
paymentStatus = getPaymentStatus(member.getAmountReceivable(), member.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode(), false);//缴费状态
member.setPaymentStatus(paymentStatus);
//更新主列表
payMemberProjectSubitemMapper.updateById(member);
@@ -618,7 +620,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
}
payPaymentRecordService.sendMessage( principalId,project, payPaymentRecord,listId);
}else{
paymentStatus = getPaymentStatus(tbMember.getAmountReceivable(), tbMember.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode());//缴费状态
paymentStatus = getPaymentStatus(tbMember.getAmountReceivable(), tbMember.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode(), false);//缴费状态
tbMember.setPaymentStatus(paymentStatus);
tbCheckVo.setCheckResult(PayProjectCommon.NO);
@@ -667,7 +669,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
inAccount = payPaymentRecordService.getInAccount(tbMemberCertificate.getAmountReceivable(), newPaidAmount);//到账状态
tbMemberCertificate.setPaidAmount(newPaidAmount);
tbMemberCertificate.setInAccount(inAccount);
paymentStatus = getPaymentStatus(tbMemberCertificate.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode());//缴费状态
paymentStatus = getPaymentStatus(tbMemberCertificate.getAmountReceivable(), newPaidAmount, PaymentStatusEnum.COMPLETED.getCode(), false);//缴费状态
tbMemberCertificate.setPaymentStatus(paymentStatus);
//插入来款记录表
payPaymentRecord.setId(null);
@@ -691,7 +693,7 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
}
payPaymentRecordService.sendMessage( principalId,project, payPaymentRecord,listId);
}else{
paymentStatus = getPaymentStatus(tbMemberCertificate.getAmountReceivable(), tbMemberCertificate.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode());//缴费状态
paymentStatus = getPaymentStatus(tbMemberCertificate.getAmountReceivable(), tbMemberCertificate.getPaidAmount(), PaymentStatusEnum.REJECTED.getCode(), false);//缴费状态
tbMemberCertificate.setPaymentStatus(paymentStatus);
tbCheckCerVo.setCheckResult(PayProjectCommon.NO);
@@ -740,28 +742,44 @@ public class PayPaymentCheckServiceImpl extends ServiceImpl<PayPaymentCheckMappe
* @param amountReceivable 应收
* @param paidAmount 实收
* @param paymentStatus 缴费状态
* @param changeReceivableAmountFlag 更改待确收金额标识
* @return
*/
@Override
public String getPaymentStatus(BigDecimal amountReceivable,BigDecimal paidAmount,String paymentStatus){
public String getPaymentStatus(BigDecimal amountReceivable, BigDecimal paidAmount, String paymentStatus, boolean changeReceivableAmountFlag){
if(amountReceivable == null){
amountReceivable = new BigDecimal("0.00");
}
if(paidAmount == null){
paidAmount = new BigDecimal("0.00");
}
if (changeReceivableAmountFlag){
// 实收金额 < 待确收金额 && 不等于待审核/已拒绝
if(paidAmount.compareTo(amountReceivable) < 0
&& !PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(paymentStatus)
&& !PaymentStatusEnum.REJECTED.getCode().equals(paymentStatus)){
paymentStatus = PaymentStatusEnum.TO_BE_UPLOADED.getCode();//待上传
}
// 应收>0 && 实收金额 == 待确收金额 && 不等于待审核
if(amountReceivable.compareTo(new BigDecimal("0.00")) > 0
&& paidAmount.compareTo(amountReceivable) == 0
&& !PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(paymentStatus)){
paymentStatus = PaymentStatusEnum.COMPLETED.getCode();//已完结
}
}else {
// 实收金额 < 待确收金额 && 不等于待审核/已拒绝
if(paidAmount.compareTo(amountReceivable) < 0
//&& !PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(paymentStatus)
&& !PaymentStatusEnum.REJECTED.getCode().equals(paymentStatus)){
paymentStatus = PaymentStatusEnum.TO_BE_UPLOADED.getCode();//待上传
}
// 应收>0 && 实收金额 == 待确收金额
if(amountReceivable.compareTo(new BigDecimal("0.00")) > 0
&& paidAmount.compareTo(amountReceivable) == 0){
paymentStatus = PaymentStatusEnum.COMPLETED.getCode();//已完结
}
}
// 实收金额 < 待确收金额 && 不等于待审核/已拒绝
if(paidAmount.compareTo(amountReceivable) < 0
&& !PaymentStatusEnum.TO_BE_REVIEWED.getCode().equals(paymentStatus)
&& !PaymentStatusEnum.REJECTED.getCode().equals(paymentStatus)){
paymentStatus = PaymentStatusEnum.TO_BE_UPLOADED.getCode();//待上传
}
// 应收>0 && 实收金额 == 待确收金额
if(amountReceivable.compareTo(new BigDecimal("0.00")) > 0
&& paidAmount.compareTo(amountReceivable) == 0){
paymentStatus = PaymentStatusEnum.COMPLETED.getCode();//已完结
}
return paymentStatus;
}
}
@@ -18,7 +18,6 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayCompanyManagement;
@@ -27,6 +26,7 @@ import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.config.StaticConfig;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.mail.service.IPayMailBillService;
import com.jero.meeting.common.MeetingSubitemCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation;
@@ -50,6 +50,7 @@ import com.jero.payment.mapper.PayPaymentRecordMapper;
import com.jero.payment.service.IPayPaymentCheckService;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.payment.vo.EditBillTypeParam;
import com.jero.payment.vo.EditReceivableAmountParam;
import com.jero.payment.vo.TbCheckVo;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayCommonProject;
@@ -139,7 +140,10 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
private IPayWorkingGroupSubItemContactsService payWorkingGroupSubItemContactsService;
@Resource
private IPayPackCompanyService payPackCompanyService;
@Resource
private IPayMailBillService mailBillService;
@Resource
private PayConfirmPaymentRecordService confirmPaymentRecordService;
@Value("${jero.path.upload}")
private String upLoadPath;
@@ -407,7 +411,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =addPaidAmount(payCommonProject.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
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());
noTaxAmount = addPaidAmount(payCommonProject.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
payCommonProject.setPaidTax(tax);
@@ -438,7 +443,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =addPaidAmount(payWorking.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
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());
noTaxAmount = addPaidAmount(payWorking.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
payWorking.setPaidTax(tax);
@@ -467,7 +473,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =addPaidAmount(meeting.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
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());
noTaxAmount = addPaidAmount(meeting.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
meeting.setPaidTax(tax);
@@ -494,7 +501,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =addPaidAmount(member.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
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());
noTaxAmount = addPaidAmount(member.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
member.setPaidTax(tax);
@@ -524,7 +532,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =addPaidAmount(tbMember.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
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());
noTaxAmount = addPaidAmount(tbMember.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
tbMember.setPaidTax(tax);
@@ -556,7 +565,8 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =addPaidAmount(tbMemberCertificate.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
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());
noTaxAmount = addPaidAmount(tbMemberCertificate.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
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 税额
@@ -1224,6 +1259,232 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
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
@@ -1332,7 +1593,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =subtract(payCommonProject.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
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());
noTaxAmount = subtract(payCommonProject.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
payCommonProject.setPaidTax(tax);
@@ -1352,7 +1613,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =subtract(payWorking.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
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());
noTaxAmount = subtract(payWorking.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
payWorking.setPaidTax(tax);
@@ -1371,7 +1632,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =subtract(meeting.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
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());
noTaxAmount = subtract(meeting.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
meeting.setPaidTax(tax);
@@ -1391,7 +1652,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =subtract(member.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
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());
noTaxAmount = subtract(member.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
member.setPaidTax(tax);
@@ -1410,7 +1671,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
newPaidAmount =subtract(projectSubitem.getPaidAmount(),payPaymentRecord.getAmountReceived());//累加实收
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());
noTaxAmount = subtract(projectSubitem.getPaidNoTaxAmount(),payPaymentRecord.getNoTaxAmount());
projectSubitem.setPaidTax(tax);
@@ -1462,7 +1723,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
||PayIncomeContractCommon.PROJECT_TYPE2.equals(projectType)
||PayIncomeContractCommon.PROJECT_TYPE4.equals(projectType)){
// 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(mailContactsId);
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(mailContactsId, null);
if(Objects.isNull(mailContactsName)){
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全额对勾00X2>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.HttpServletResponse;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -154,6 +157,17 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
if(!StringUtils.isBlank(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();
if(!rolePermissionService.getRolePermission("generalProject:search")){
@@ -171,6 +185,12 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
if(Objects.isNull(p.getPaidAmount())){
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);
}
@@ -392,9 +412,11 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
@ApiOperation(value="普通项目管理-添加", notes="普通项目管理-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayCommonProject payCommonProject) {
if (Objects.isNull(payCommonProject.getEstimatedArrivalDate())) {
if (StringUtils.isBlank(payCommonProject.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空");
}
// 给预估到账日期字段 yyyy-MM 拼接 -01 以便正确入库
payCommonProject.setEstimatedArrivalDate(payCommonProject.getEstimatedArrivalDate() + "-01");
StringBuilder msg = ValidUtil.validateAll(payCommonProject);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -417,6 +439,8 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
if (Objects.isNull(payCommonProject.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空");
}
// 给预估到账日期字段 yyyy-MM 拼接 -01 以便正确入库
payCommonProject.setEstimatedArrivalDate(payCommonProject.getEstimatedArrivalDate() + "-01");
StringBuilder msg = ValidUtil.validateAll(payCommonProject);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -17,10 +17,11 @@ import com.jero.common.util.oConvertUtils;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.mail.commont.constant;
import com.jero.meeting.entity.PayMeetingQuestion;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.project.vo.PayWorkingGroupPayment;
@@ -34,18 +35,14 @@ import org.apache.shiro.SecurityUtils;
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 javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
/**
* @Description: 工作组项目
* @Author: jeecg-boot
* @Date: 2021-08-27
@@ -64,7 +61,8 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
private IPayIncomeContractService payIncomeContractService;
@Resource
private RolePermissionService rolePermissionService;
@Resource
private AnnualDataLockingService annualDataLockingService;
/**
* 分页列表查询
*
@@ -300,6 +298,9 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
log.info("工作组项目-添加异常",e);
return Result.error("工作组项目已存在!");
}
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
payWorkingGroupService.setPayWorkingGroup(payWorkingGroup);
payWorkingGroupService.save(payWorkingGroup);
return Result.OK("添加成功!");
@@ -323,10 +324,17 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
if(StringUtils.isEmpty(payWorkingGroup.getId())){
return Result.error("工作组id不能为空!");
}
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
PayWorkingGroup payWorkingGroupOld = payWorkingGroupService.getById(payWorkingGroup.getId());
if(Objects.isNull(payWorkingGroupOld)){
return Result.error(payWorkingGroupOld.getWorkingGroupProject() + "工作组不存在!");
}
String oldYear = payWorkingGroupOld.getYear();
//判断用户是否能操作所选年份数据
annualDataLockingService.judgeUserYear(oldYear);
// 工作组下有子项目的时候不能编辑是否收费字段
// 根据id找到原始数据判断是否收费字段是否变动如果变动则提示不可修改
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::getRemarks,payWorkingGroup.getRemarks());
updatePayWorkingGroup.set(PayWorkingGroup::getPayFlag,payWorkingGroup.getPayFlag());
updatePayWorkingGroup.set(PayWorkingGroup::getSortNo,payWorkingGroup.getSortNo());
payWorkingGroupService.update(updatePayWorkingGroup);
return Result.OK("编辑成功!");
}
@@ -465,4 +474,16 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
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.IPayPackCompanyService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.AnnualDataLocking;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.entity.PayWorkingGroupSubItemContacts;
import com.jero.project.service.AnnualDataLockingService;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemContactsService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
@@ -59,6 +61,10 @@ import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -100,6 +106,8 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
private ISysUserService sysUserService;
@Resource
private IPayWorkingGroupSubItemContactsService payWorkingGroupSubItemContactsService;
@Resource
private AnnualDataLockingService annualDataLockingService;
/**
* 分页列表查询
@@ -130,6 +138,17 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
if(Objects.isNull(payWorkingGroup)){
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();
if(!rolePermissionService.getRolePermission("workingGroupMember:search")
&& !Objects.equals(payWorkingGroup.getPrincipalIdA(),sysUser.getId())
@@ -147,6 +166,12 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
if(Objects.isNull(p.getPaidAmount())){
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);
@@ -406,6 +431,9 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
@ApiOperation(value = "工作组成员-添加", notes = "工作组成员-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) {
if (!StringUtils.isBlank(payWorkingGroupSubItem.getEstimatedArrivalDate())) {
payWorkingGroupSubItem.setEstimatedArrivalDate(payWorkingGroupSubItem.getEstimatedArrivalDate() + "-01");
}
// 找到工作组 看是否收费如果不收费则填入默认字段
payWorkingGroupService.validAndSetDefaultValue(payWorkingGroupSubItem);
StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem);
@@ -432,10 +460,30 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
if (StringUtils.isBlank(workingGroupIds)) {
return Result.error("工作组ids不能为空!");
}
if (!StringUtils.isBlank(payWorkingGroupSubItem.getEstimatedArrivalDate())) {
payWorkingGroupSubItem.setEstimatedArrivalDate(payWorkingGroupSubItem.getEstimatedArrivalDate() + "-01");
}
String[] workingGroupIdsArr = workingGroupIds.split(",");
List<String> errInfoList = new ArrayList<>();
for (String workingGroupId : workingGroupIdsArr) {
payWorkingGroupSubItem.setId(null);
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(workingGroupId);
BigDecimal yearChargeA = payWorkingGroup.getYearChargeA();
BigDecimal taxRate = new BigDecimal("0.06");
payWorkingGroupSubItem.setTaxRate(taxRate);
if (Objects.isNull(yearChargeA)) {
payWorkingGroupSubItem.setReceivableAmount(BigDecimal.ZERO);
payWorkingGroupSubItem.setTax(BigDecimal.ZERO);
payWorkingGroupSubItem.setNoTaxAmount(BigDecimal.ZERO);
} else {
payWorkingGroupSubItem.setReceivableAmount(yearChargeA);
// 计算未税金额
BigDecimal noTaxAmount = yearChargeA.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
// 计算税额
BigDecimal tax = yearChargeA.subtract(noTaxAmount).setScale(2, RoundingMode.HALF_UP);
payWorkingGroupSubItem.setTax(tax);
payWorkingGroupSubItem.setNoTaxAmount(noTaxAmount);
}
payWorkingGroupSubItem.setId(null);
List<PayWorkingGroupSubItemContacts> payWorkingGroupSubItemContactsList =
payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList();
payWorkingGroupSubItemContactsList.forEach(p -> p.setId(null));
@@ -472,6 +520,9 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
@ApiOperation(value = "工作组成员-编辑", notes = "工作组成员-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) {
if (!StringUtils.isBlank(payWorkingGroupSubItem.getEstimatedArrivalDate())) {
payWorkingGroupSubItem.setEstimatedArrivalDate(payWorkingGroupSubItem.getEstimatedArrivalDate() + "-01");
}
StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem);
if (!StringUtils.isBlank(msg)) {
return Result.error(msg.toString());
@@ -716,6 +767,17 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
&& !Objects.equals(payWorkingGroup.getPrincipalIdB(),sysUser.getId())){
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 组装查询条件
//QueryWrapper<PayWorkingGroupSubItem> queryWrapper = QueryGenerator.initQueryWrapper(payWorkingGroupSubItem, request.getParameterMap());
@@ -746,6 +808,11 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
if(Objects.isNull(workingGroupSubItem.getPaidAmount())){
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();
BeanUtils.copyProperties(workingGroupSubItem,excel);
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);
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 = "权益状态")
@TableField(exist = false)
private String equityStatus;
@ApiModelProperty(value = "自定义排序顺序")
@TableField(exist = false)
private BigDecimal sortNo;
}
@@ -20,10 +20,14 @@ public class PayWorkGroupSubletStatistics {
@ApiModelProperty(value = "来款单位")
private String chargeCompanyTemporaryName;
@Excel(name = "项目负责人", width = 15)
@ApiModelProperty(value = "项目负责人")
private String principalName;
@ApiModelProperty(value = "打包")
private Integer pack;
@Excel(name = "打包", width = 15)
@Excel(name = "是否打包", width = 15)
private String packText;
@Excel(name = "年度待确收金额", width = 15)
@@ -54,8 +58,5 @@ public class PayWorkGroupSubletStatistics {
@Excel(name = "项目负责人", width = 15)
@ApiModelProperty(value = "项目负责人")
private String principalName;
}
@@ -160,4 +160,7 @@ public class PayWorkingGroup implements Serializable {
@TableField(exist = false)
@ApiModelProperty(value = "企业名称")
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")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预估到账日期")
@Excel(name = "预估到账日期",width = 15,format = "yyyy-MM-dd")
@Excel(name = "预估到账日期",width = 15,format = "yyyy-MM")
private String estimatedArrivalDate;
/**实收金额(元)*/
@@ -614,4 +614,10 @@ public class PayWorkingGroupSubItem implements Serializable {
@ApiModelProperty(value = "工作组ids 多个以逗号分隔")
@TableField(exist = false)
private String workingGroupIds;
@ApiModelProperty(value = "是否审核(1:是,0:否")
private Integer checkPaymentStatus;
@ApiModelProperty(value = "是否确认凭证(1:是,0:否")
private Integer confirmVoucher;
}
@@ -52,4 +52,10 @@ public class PayWorkingGroupSubletSearch {
@ApiModelProperty(value = "是否打包")
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;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -13,14 +16,14 @@ import java.util.List;
/**
* @Description: pay_common_project
* @Author: jeecg-boot
* @Date: 2021-08-27
* @Date: 2021-08-27
* @Version: V1.0
*/
public interface PayCommonProjectMapper extends BaseMapper<PayCommonProject> {
/**
* @Description 分页查询
* @Author lqt
* @Date 2021/8/27
* @Author lqt
* @Date 2021/8/27
* @Param paymentDate 来款年份
* @Return
* @Exception
@@ -31,16 +34,22 @@ public interface PayCommonProjectMapper extends BaseMapper<PayCommonProject> {
/**
* @Description 收入合同-列表
* @Author lqt
* @Date 2021/10/18
* @Param queryWrapper
* @Author lqt
* @Date 2021/10/18
* @Param queryWrapper
* @Param projectType 项目类型
* @Param pack 打包状态
* @Param packYear 打包年份
* @Return
* @Exception
*/
List<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> 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;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import java.util.ArrayList;
import java.util.Collection;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -9,16 +18,25 @@ import com.jero.project.entity.PayWorkingGroupSubItemContacts;
/**
* @Description: pay_working_group_subitem_contacts
* @Author: jeecg-boot
* @Date: 2022-04-19
* @Date: 2022-04-19
* @Version: V1.0
*/
public interface PayWorkingGroupSubItemContactsMapper extends BaseMapper<PayWorkingGroupSubItemContacts> {
/**
* 根据成员id获得主联系人
*/
String getMasterContactsId(@Param("workingGroupSubId")String workingGroupSubId);
String getMasterContactsId(@Param("workingGroupSubId") String workingGroupSubId);
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);
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,16 +11,15 @@
su.realname as principal_name,
pcp.charge_company_id,
pcp.charge_company_temporary_id,
# if(pcp.charge_company_temporary_name = pcm.company_name, pcp.charge_company_temporary_name, concat(pcp.charge_company_temporary_name,'(更名为',pcm.company_name,'')) as charge_company_temporary_name,
IF(
pcp.charge_company_temporary_name =
IF(
pcp.charge_company_temporary_name LIKE '%(未审核)',
CONCAT(pcm.company_name, '(未审核)'),
pcm.company_name
),
pcp.charge_company_temporary_name,
CONCAT(pcp.charge_company_temporary_name, '(更名为', pcm.company_name, '')
pcp.charge_company_temporary_name =
IF(
pcp.charge_company_temporary_name LIKE '%(未审核)',
CONCAT(pcm.company_name, '(未审核)'),
pcm.company_name
),
pcp.charge_company_temporary_name,
CONCAT(pcp.charge_company_temporary_name, '(更名为', pcm.company_name, '')
) AS chargeCompanyTemporaryName,
pcp.charge_use,
pcp.contacts_id,
@@ -57,8 +56,7 @@
FROM pay_common_project pcp
left join sys_user su on pcp.principal_id = su.id
LEFT JOIN pay_payment_record ppr ON ppr.project_id = pcp.id
left join pay_company_management_temporary pcmt on pcp.charge_company_temporary_id = pcmt.id
left join pay_company_management pcm on pcmt.company_id = pcm.id
left join pay_company_management pcm on pcp.charge_company_id = pcm.id
<where>
<if test="payCommonProject.chargeProject != null and payCommonProject.chargeProject != ''">
AND pcp.charge_project like concat('%',concat(#{payCommonProject.chargeProject},'%'))
@@ -24,7 +24,8 @@
pwg.create_time AS createTime,
pwg.update_by AS updateBy,
pwg.update_time AS updateTime,
pwg.pay_flag AS payFlag
pwg.pay_flag AS payFlag,
pwg.sort_no AS sortNo
FROM pay_working_group pwg
left join sys_user su on pwg.principal_id_a = su.id
left join sys_user su1 on pwg.principal_id_b = su.id
@@ -61,7 +62,10 @@
and pwgs.charge_company_temporary_name like concat('%', #{payWorkingGroup.companyName}, '%')
</if>
</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 id="queryListByCompany" resultType="com.jero.project.vo.PayWorkingGroupVO">
SELECT
@@ -1438,6 +1442,9 @@
<if test="principalPeopleDetailSearch.inAccountStatue != null and principalPeopleDetailSearch.inAccountStatue != ''">
AND payStatue = #{principalPeopleDetailSearch.inAccountStatue}
</if>
<if test="principalPeopleDetailSearch.pack != null and principalPeopleDetailSearch.pack != ''">
AND pack = #{principalPeopleDetailSearch.pack}
</if>
<choose>
<when test="principalPeopleDetailSearch.allMoney != null and principalPeopleDetailSearch.allMoney != '' and principalPeopleDetailSearch.allMoneyTwo != null and principalPeopleDetailSearch.allMoneyTwo != ''">
AND allMoney >= #{principalPeopleDetailSearch.allMoney}
@@ -1453,14 +1460,6 @@
</if>
</otherwise>
</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>
<if test="principalPeopleDetailSearch.column != null and principalPeopleDetailSearch.column != ''">
<if test="principalPeopleDetailSearch.column == 'allMoney' and principalPeopleDetailSearch.order == 'desc'">
@@ -1538,6 +1537,9 @@
<if test="principalPeopleDetailSearch.inAccountStatue != null and principalPeopleDetailSearch.inAccountStatue != ''">
AND payStatue = #{principalPeopleDetailSearch.inAccountStatue}
</if>
<if test="principalPeopleDetailSearch.pack != null and principalPeopleDetailSearch.pack != ''">
AND pack = #{principalPeopleDetailSearch.pack}
</if>
<choose>
<when test="principalPeopleDetailSearch.allMoney != null and principalPeopleDetailSearch.allMoney != '' and principalPeopleDetailSearch.allMoneyTwo != null and principalPeopleDetailSearch.allMoneyTwo != ''">
AND allMoney >= #{principalPeopleDetailSearch.allMoney}
@@ -2036,7 +2038,9 @@
<if test="CompanyComeMoneyDetailSearch.chargeUse != null and CompanyComeMoneyDetailSearch.chargeUse != ''">
AND chargeUse=#{CompanyComeMoneyDetailSearch.chargeUse}
</if>
<if test="CompanyComeMoneyDetailSearch.pack != null and CompanyComeMoneyDetailSearch.pack != ''">
AND pack =#{CompanyComeMoneyDetailSearch.pack}
</if>
<choose>
<when test="CompanyComeMoneyDetailSearch.allMoney != null and CompanyComeMoneyDetailSearch.allMoney != '' and CompanyComeMoneyDetailSearch.allMoneyTwo != null and CompanyComeMoneyDetailSearch.allMoneyTwo != ''">
AND allMoney >= #{CompanyComeMoneyDetailSearch.allMoney} and allMoney <![CDATA[<]]>=
@@ -2051,14 +2055,6 @@
</if>
</otherwise>
</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>
) p
<if test="CompanyComeMoneyDetailSearch.column != null and CompanyComeMoneyDetailSearch.column != ''">
@@ -2150,6 +2146,10 @@
AND chargeUse = #{CompanyComeMoneyDetailSearch.chargeUse}
</if>
<if test="CompanyComeMoneyDetailSearch.pack != null and CompanyComeMoneyDetailSearch.pack != ''">
AND pack =#{CompanyComeMoneyDetailSearch.pack}
</if>
<choose>
<when test="CompanyComeMoneyDetailSearch.allMoney != null and CompanyComeMoneyDetailSearch.allMoney != '' and CompanyComeMoneyDetailSearch.allMoneyTwo != null and CompanyComeMoneyDetailSearch.allMoneyTwo != ''">
AND allMoney >= #{CompanyComeMoneyDetailSearch.allMoney}
@@ -2165,14 +2165,6 @@
</if>
</otherwise>
</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>
) pp
</select>
@@ -2350,7 +2342,7 @@
order by bill_date
</select>
<!--全所收入统计 开票金额-->
<!--全所收入统计 到账金额-->
<select id="queryListComeAllMoney" resultType="com.jero.statistics.entity.AllProjectStatistics">
select
sum(no_tax_amount) as comeAllMoney,
@@ -2670,26 +2662,172 @@
<!-- 统计预计到账金额(应收金额) 预计到账日期 -->
<select id="cumulativeListEstimatedArrivalMoney"
resultType="com.jero.statistics.entity.AllProjectStatistics">
select DATE_FORMAT(paymentDate, '%Y-%m') as paymentDate,sum(estimatedArrivalMoney) as estimatedArrivalMoney from (
select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
from pay_common_project
where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
and pack = 0
union all
select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
from pay_working_group_subitem
where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
and pack = 0
union all
select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
from pay_meeting_situation
where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
and pack = 0
union all
select no_tax_amount as estimatedArrivalMoney,estimated_arrival_date as paymentDate
from pay_member_project_subitem
where DATE_FORMAT(estimated_arrival_date, '%Y') = #{paymentYear}
and pack = 0
) dataAll group by DATE_FORMAT(paymentDate, '%Y-%m') order by paymentDate
select DATE_FORMAT(estimatedArrivalDate, '%Y-%m') as paymentDate,
sum(allMoney) as estimatedArrivalMoney
from v_statistical_pack
where DATE_FORMAT(estimatedArrivalDate, '%Y') = #{paymentYear}
group by DATE_FORMAT(estimatedArrivalDate, '%Y-%m') order by paymentDate
</select>
<select id="queryPageListForCompanyClassification"
resultType="com.jero.statistics.entity.CompanyComeMoneyClassificationList">
select chargeCompanyId as companyId,
chargeCompanyTemporaryName as companyName,
year,
chargeUse,
SUM(allMoney) as allMoney
from
v_statistical v
<where>
<if test="companyComeMoneySearch.years != null and companyComeMoneySearch.years != ''">
<foreach item="item" index="index" collection="companyComeMoneySearch.years"
open="AND year in (" separator="," close=")">
#{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>
</mapper>
@@ -8,8 +8,6 @@
pwgs.working_group_id AS workingGroupId,
pwgs.charge_company_id AS chargeCompanyId,
pwgs.charge_company_temporary_id AS chargeCompanyTemporaryId,
<!-- pwgs.charge_company_temporary_name AS chargeCompanyTemporaryName,-->
# if(pwgs.charge_company_temporary_name = pcm.company_name, pwgs.charge_company_temporary_name, concat(pwgs.charge_company_temporary_name,'(更名为',pcm.company_name,'')) as chargeCompanyTemporaryName,
ifnull( IF(
pwgs.charge_company_temporary_name =
IF(
@@ -57,11 +55,12 @@
pwgs.tax_rate,
pwgs.no_tax_amount,
pwgs.label,
pwgs.estimated_arrival_date
pwgs.estimated_arrival_date,
pwgs.check_payment_status,
pwgs.confirm_voucher
FROM pay_working_group_subitem pwgs
LEFT JOIN pay_payment_record ppr ON ppr.project_id = pwgs.id
left join pay_company_management_temporary pcmt on pwgs.charge_company_temporary_id = pcmt.id
left join pay_company_management pcm on pcmt.company_id = pcm.id
left join pay_company_management pcm on pwgs.charge_company_id = pcm.id
<where>
pwgs.working_group_id = #{payWorkingGroupSubItem.workingGroupId}
<if test="payWorkingGroupSubItem.chargeCompanyTemporaryName != null and payWorkingGroupSubItem.chargeCompanyTemporaryName != ''">
@@ -92,6 +91,12 @@
<if test="payWorkingGroupSubItem.id != null and payWorkingGroupSubItem.id != ''">
and pwgs.id = #{payWorkingGroupSubItem.id}
</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>
GROUP BY pwgs.id
ORDER BY pwgs.create_time desc
@@ -127,7 +132,8 @@
</sql>
<!--工作组详情-->
<select id="queryPageList2" resultType="com.jero.project.entity.PayWorkGroupSubletStatistics">
SELECT
select * from
(SELECT
principalNameId as principalId,
principalName,
chargeCompanyTemporaryName,
@@ -197,17 +203,37 @@
</if>
</otherwise>
</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 != ''">
AND pack = #{payWorkingGroupSubletSearch.pack}
</if>
</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 id="queryPageList233" resultType="com.jero.statistics.entity.AllMoney">
@@ -281,12 +307,6 @@
<if test="payWorkingGroupSubletSearch.pack != null and payWorkingGroupSubletSearch.pack != ''">
AND pack = #{payWorkingGroupSubletSearch.pack}
</if>
<!--<if test="payWorkingGroupSubletSearch.paymentYear != null and payWorkingGroupSubletSearch.paymentYear != ''">
and DATE_FORMAT (pcpr.payment_date,'%Y') like concat(#{payWorkingGroupSubletSearch.paymentYear}, '%')
<if test="payWorkingGroupSubletSearch.paymentMonth != null and payWorkingGroupSubletSearch.paymentMonth != ''">
and DATE_FORMAT (pcpr.payment_date,'%m') like concat(#{payWorkingGroupSubletSearch.paymentMonth}, '%')
</if>
</if>-->
</where>
group by id) p
</select>
@@ -381,4 +401,10 @@
left join pay_working_group pwg ON pwgs.working_group_id = pwg.id
${ew.customSqlSegment}
</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>
@@ -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.baomidou.mybatisplus.extension.service.IService;
import com.jero.statistics.entity.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -259,4 +260,15 @@ public interface IPayWorkingGroupService extends IService<PayWorkingGroup> {
* @param 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
*/
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.IPayIncomeContractService;
import com.jero.mail.service.IPayMailBillService;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.payment.service.IPayPaymentCheckService;
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.entity.PayCommonProject;
import com.jero.project.mapper.PayCommonProjectMapper;
@@ -85,6 +86,8 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
private IPayPaymentCheckService payPaymentCheckService;
@Resource
private IPayMailBillService payMailBillService;
@Resource
private AnnualDataLockingService annualDataLockingService;
@@ -109,7 +112,11 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
log.info("普通项目管理-添加异常",e);
throw new JeroBootException("来款项目已存在!");
}
setPayCommonProjectAdd(payCommonProject);
String year = payCommonProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
setPayCommonProjectAdd(payCommonProject,annualDataLocking);
payCommonProject.setInAccount(PayProjectCommon.IN_ACCOUNT0);
payCommonProject.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
payCommonProject.setMail(PayProjectCommon.MAIL0);
@@ -178,6 +185,13 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
if(Objects.equals(payCommonProjectOld.getPack(),PayProjectCommon.PACKAGING1)){
throw new JeroBootException("项目已打包,不可编辑!");
}
String year = payCommonProjectOld.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking1 = annualDataLockingService.judgeUserYear(year);
String year1 = payCommonProject.getYear();
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year1);
// 项目为打包状态 || 到账=0 || 开票=0 || 邮寄=0
if(!Objects.equals(payCommonProject.getChargeCompanyId(),payCommonProjectOld.getChargeCompanyId())
&& (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());
if(!Objects.isNull(projectStatusVO)){
@@ -242,7 +256,7 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
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);
payCommonProjectService.updateById(payCommonProject);
@@ -330,6 +344,10 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
if(!rolePermissionService.getRolePermission(perms) && !Objects.equals(payCommonProject.getPrincipalId(), sysUser.getId())){
sb.append(payCommonProject.getChargeProject() + "项目不可操作!<br/>");
}
String year = payCommonProject.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
if(!StringUtils.isEmpty(sb)){
return sb;
}
@@ -353,8 +371,8 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
update.eq(PayPackCompanyProject::getProjectId,payCommonProject.getId());
payPackCompanyProjectService.remove(update);
// 删除企业联系人临时数据
payCompanyManagementTemporaryService.removeById(payCommonProject.getChargeCompanyTemporaryId());
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProject.getContactsTemporaryId(),payCommonProject.getMailContactsTemporaryId()));
//payCompanyManagementTemporaryService.removeById(payCommonProject.getChargeCompanyTemporaryId());
// paycontactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProject.getContactsTemporaryId(),payCommonProject.getMailContactsTemporaryId()));
return sb;
}
@@ -366,21 +384,21 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
* @Return
* @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)){
throw new JeroBootException("企业名称为空!");
}
// 联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getContactsId());
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getContactsId(), annualDataLocking);
if(Objects.isNull(contactsName)){
throw new JeroBootException("联系人名称为空!");
}
// 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getMailContactsId());
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getMailContactsId(), annualDataLocking);
if(Objects.isNull(mailContactsName)){
throw new JeroBootException("邮寄联系人名称为空!");
}
@@ -408,17 +426,17 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
* @Return
* @Exception
*/
private void setPayCommonProjectEdit(PayCommonProject payCommonProject,PayCommonProject payCommonProjectOld){
private void setPayCommonProjectEdit(PayCommonProject payCommonProject, PayCommonProject payCommonProjectOld, AnnualDataLocking annualDataLocking){
// 企业id != 企业模板id 变更
if(!Objects.equals(payCommonProject.getChargeCompanyId(),payCommonProjectOld.getChargeCompanyTemporaryId())){
// 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payCommonProject.getChargeCompanyId());
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payCommonProject.getChargeCompanyId(), annualDataLocking);
if(Objects.isNull(chargeCompanyName)){
throw new JeroBootException("企业名称为空!");
}
payCommonProject.setChargeCompanyTemporaryId(chargeCompanyName.getId());
payCommonProject.setChargeCompanyTemporaryName(chargeCompanyName.getCompanyName());
payCompanyManagementTemporaryService.removeById(payCommonProjectOld.getChargeCompanyTemporaryId());
//payCompanyManagementTemporaryService.removeById(payCommonProjectOld.getChargeCompanyTemporaryId());
}else{
payCommonProject.setChargeCompanyId(payCommonProjectOld.getChargeCompanyId());
}
@@ -427,13 +445,13 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
// 联系人id != 联系人模板id 变更
if(!Objects.equals(payCommonProject.getContactsId(),payCommonProjectOld.getContactsTemporaryId())){
// 联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getContactsId());
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getContactsId(), annualDataLocking);
if(Objects.isNull(contactsName)){
throw new JeroBootException("联系人名称为空!");
}
payCommonProject.setContactsTemporaryId(contactsName.getId());
payCommonProject.setContactsTemporaryName(contactsName.getName());
payContactsManagementTemporaryService.removeById(payCommonProjectOld.getContactsTemporaryId());
// payContactsManagementTemporaryService.removeById(payCommonProjectOld.getContactsTemporaryId());
}else{
payCommonProject.setContactsId(payCommonProjectOld.getContactsId());
}
@@ -441,13 +459,13 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
// 邮寄联系人id != 邮寄联系人模板id 变更
if(!Objects.equals(payCommonProject.getMailContactsId(),payCommonProjectOld.getMailContactsTemporaryId())){
// 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getMailContactsId());
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payCommonProject.getMailContactsId(), annualDataLocking);
if(Objects.isNull(mailContactsName)){
throw new JeroBootException("邮寄联系人名称为空!");
}
payCommonProject.setMailContactsTemporaryId(mailContactsName.getId());
payCommonProject.setMailContactsTemporaryName(mailContactsName.getName());
payContactsManagementTemporaryService.removeById(payCommonProjectOld.getMailContactsTemporaryId());
// payContactsManagementTemporaryService.removeById(payCommonProjectOld.getMailContactsTemporaryId());
}else{
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.RolePermissionService;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.config.StaticConfig;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.mail.commont.constant;
import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.entity.PayMeeting;
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.service.ISysUserService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.*;
import com.jero.project.mapper.PayWorkingGroupMapper;
import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper;
import com.jero.project.service.IPayResearchProjectService;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.project.service.*;
import com.jero.project.vo.PayWorkingGroupVO;
import com.jero.statistics.entity.*;
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.shiro.SecurityUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
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;
@Resource
private IPayMeetingService payMeetingService;
@Resource
private IPayWorkingGroupDataFileService payWorkingGroupDataFileService;
@Resource
private IOSSFileService iossFileService;
@Resource
private AnnualDataLockingService annualDataLockingService;
@Value("${jero.path.upload}")
private String upLoadPath;
@Override
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())){
throw new JeroBootException(payWorkingGroupOld.getWorkingGroupProject() + "工作组项目不可操作!");
}
String year = payWorkingGroupOld.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>();
query.eq(PayWorkingGroupSubItem::getWorkingGroupId,id);
List<PayWorkingGroupSubItem> listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query);
@@ -154,6 +171,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
!Objects.equals(payWorkingGroupOld.getPrincipalIdB(),sysUser.getId())){
sb.append(payWorkingGroupOld.getWorkingGroupProject() + "工作组项目不可操作!<br/>");
}
String year = payWorkingGroupOld.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>();
query.eq(PayWorkingGroupSubItem::getWorkingGroupId, p);
List<PayWorkingGroupSubItem> listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query);
@@ -232,6 +252,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
payWorkingGroupOld.setId(null);
payWorkingGroupOld.setWorkingGroupProject(str);
payWorkingGroupOld.setYear(String.valueOf(DateUtil.thisYear()));
payWorkingGroupOld.setChargeA(null);
payWorkingGroupOld.setChargeNoticeNoA(null);
payWorkingGroupOld.setChargeNoticeAId(null);
@@ -274,7 +295,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
// 添加企业临时数据
PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getById(p.getChargeCompanyTemporaryId());
if(Objects.isNull(payCompanyManagementTemporary)){
payCompanyManagementTemporary = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(p.getChargeCompanyId());
payCompanyManagementTemporary = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(p.getChargeCompanyId(), null);
}else{
payCompanyManagementTemporary.setCompanyId(payCompanyManagementTemporary.getCompanyId());
payCompanyManagementTemporary.setId(null);
@@ -287,7 +308,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
// 添加邮寄联系人临时数据
PayContactsManagementTemporary payContactsManagementTemporaryMail = payContactsManagementTemporaryService.getById(p.getMailContactsId());
if(Objects.isNull(payContactsManagementTemporaryMail)){
payContactsManagementTemporaryMail = payContactsManagementTemporaryService.insertContactsManagementTemporary(p.getMailContactsId());
payContactsManagementTemporaryMail = payContactsManagementTemporaryService.insertContactsManagementTemporary(p.getMailContactsId(), null);
} else {
payContactsManagementTemporaryMail.setCompanyId(payContactsManagementTemporaryMail.getId());
payContactsManagementTemporaryMail.setId(null);
@@ -349,7 +370,7 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
for (PayWorkingGroupSubItemContacts subItemContacts : itemContactsList) {
PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(subItemContacts.getContactsTemporaryId());
if(Objects.isNull(payContactsManagementTemporary)){
payContactsManagementTemporary = payContactsManagementTemporaryService.insertContactsManagementTemporary(subItemContacts.getContactsId());
payContactsManagementTemporary = payContactsManagementTemporaryService.insertContactsManagementTemporary(subItemContacts.getContactsId(), null);
}else{
payContactsManagementTemporary.setId(null);
payContactsManagementTemporary.setCompanyId(p.getChargeCompanyTemporaryId());
@@ -588,6 +609,13 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
public AllMoney queryPageListProjectTotal(AllProjectStatisticsSearch allProjectStatisticsSearch, List<String> idList) {
return payWorkingGroupMapper.queryPageListProjectTotal(allProjectStatisticsSearch, idList);
}
/**
* 科室统计excel
*/
@Override
public List<AllProjectStatistics> queryPageListExcelForProject(AllProjectStatisticsSearch allProjectStatisticsSearch, List<String> idList) {
return payWorkingGroupMapper.queryPageListExcelForProject(allProjectStatisticsSearch, idList);
}
@Override
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> 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> billMoneyList=list2.stream().map(AllProjectStatistics::getBillMoney).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<>();
list3.add(0,allMoneyList1);
list3.add(1,confirmMoneyList);
list3.add(2,billMoneyList);
list3.add(3,comeAllMoneyList);
BigDecimal allMoney = BigDecimal.ZERO;
BigDecimal comeAllMoney = BigDecimal.ZERO;
BigDecimal billMoney = BigDecimal.ZERO;
BigDecimal confirmAmount = BigDecimal.ZERO;
for (AllProjectStatistics item : list2) {
BigDecimal allMoney1 = new BigDecimal(item.getEstimatedArrivalMoney());
allMoney = allMoney.add(allMoney1);
BigDecimal comeAllMoney1 = new BigDecimal(item.getComeAllMoney());
comeAllMoney = comeAllMoney.add(comeAllMoney1);
BigDecimal billMoney1 = new BigDecimal(item.getBillMoney());
billMoney = billMoney.add(billMoney1);
BigDecimal confirmAmount1 = new BigDecimal(item.getConfirmAmount());
confirmAmount = confirmAmount.add(confirmAmount1);
};
AllProjectMoneyExcel comeAllProjectMoney=new AllProjectMoneyExcel("到账金额",allMoney.getComeAllMoney());
AllProjectMoneyExcel billAllProjectMoney=new AllProjectMoneyExcel("开票金额",allMoney.getBillMoney());
AllProjectMoneyExcel confirmAllProjectMoney=new AllProjectMoneyExcel("确认收入金额",allMoney.getConfirmAmount());
AllProjectMoneyExcel allProjectMoney=new AllProjectMoneyExcel("年度待确收金额",allMoney.getAllMoney());
AllProjectMoneyExcel comeAllProjectMoney=new AllProjectMoneyExcel("到账金额",comeAllMoney.toString());
AllProjectMoneyExcel billAllProjectMoney=new AllProjectMoneyExcel("开票金额",billMoney.toString());
AllProjectMoneyExcel confirmAllProjectMoney=new AllProjectMoneyExcel("确认收入金额",confirmAmount.toString());
AllProjectMoneyExcel allProjectMoney=new AllProjectMoneyExcel("预估收入金额",allMoney.toString());
List<AllProjectMoneyExcel> excelList = new ArrayList<>();
excelList.add(0,allProjectMoney);
excelList.add(1,confirmAllProjectMoney);
@@ -748,6 +790,9 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
if (Objects.isNull(payWorkingGroup)) {
throw new JeroBootException("工作组不存在");
}
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
// 找到是否付费标识
Integer payFlag = payWorkingGroup.getPayFlag();
if (Objects.isNull(payFlag)) {
@@ -831,5 +876,221 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
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.meeting.entity.PayMeetingRemindRecord;
import com.jero.meeting.service.IPayMeetingRemindRecordService;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.entity.SysUser;
@@ -45,10 +44,7 @@ import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.*;
import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper;
import com.jero.project.mapper.PayWorkingGroupSubItemMapper;
import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemContactsService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.project.service.*;
import com.jero.project.vo.SetChargeInput;
import com.jero.project.vo.SetLabelVO;
import com.jero.statistics.entity.AllMoney;
@@ -137,6 +133,8 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
IPayCommonProjectService payCommonProjectService;
@Resource
private PayContactsManagementMapper payContactsManagementMapper;
@Resource
private AnnualDataLockingService annualDataLockingService;
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());
if (!CollectionUtils.isEmpty(pwg)) {
pwg.sort(Comparator.comparing(PayWorkingGroupSubItemContacts::getOrderNum));
workingGroupSubItem.setContactsIdOne(pwg.get(0).getContactsId());
workingGroupSubItem.setContactsTemporaryIdOne(pwg.get(0).getContactsTemporaryId());
workingGroupSubItem.setContactsTemporaryNameOne(pwg.get(0).getContactsTemporaryName());
workingGroupSubItem.setPayWorkingGroupSubItemContactsList(pwg);
} else {
@@ -216,7 +216,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
if (Objects.isNull(payWorkingGroup)) {
throw new JeroBootException("工作组不存在!");
}
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
try {
// 编辑保存前再次校验来款项目是否存在
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) {
payWorkingGroupSubItem.setPaymentStatus(PayProjectCommon.PAYMENT_STATUS);
}
setPayWorkingGroupSubItemAdd(payWorkingGroupSubItem);
setPayWorkingGroupSubItemAdd(payWorkingGroupSubItem, annualDataLocking);
payWorkingGroupSubItem.setPack(PayProjectCommon.PACKAGING0);
payWorkingGroupSubItem.setInAccount(PayProjectCommon.IN_ACCOUNT0);
payWorkingGroupSubItem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0);
payWorkingGroupSubItem.setMail(PayProjectCommon.MAIL0);
payWorkingGroupSubItem.setChargeUse(PayProjectCommon.CHARGE_USE1);
payWorkingGroupSubItem.setAffirmIncome(PayProjectCommon.AFFIRM_INCOME0);
payWorkingGroupSubItem.setCheckPaymentStatus(PayProjectCommon.NOT_CHECK_PAY_MENT);
payWorkingGroupSubItem.setConfirmVoucher(PayProjectCommon.NOT_CONFIRM_VOUCHER);
payWorkingGroupSubItemService.save(payWorkingGroupSubItem);
List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList();
// 添加联系人表
@@ -336,6 +340,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
&& !Objects.equals(payWorkingGroup.getPrincipalIdB(), sysUser.getId())) {
throw new JeroBootException("工作组成员不可操作!");
}
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
// 项目为打包状态 || 到账=0 || 开票=0 || 邮寄=0
if (!Objects.equals(payWorkingGroupSubItem.getChargeCompanyId(), payWorkingGroupSubItemOld.getChargeCompanyId())
&& (Objects.equals(payWorkingGroupSubItem.getPack(), PayProjectCommon.PACKAGING1)
@@ -414,7 +421,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)) {
payWorkingGroupSubItemOld.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts);
}
setPayWorkingGroupSubItemEdit(payWorkingGroupSubItem, payWorkingGroupSubItemOld);
setPayWorkingGroupSubItemEdit(payWorkingGroupSubItem, payWorkingGroupSubItemOld, annualDataLocking);
List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList();
// 添加联系人表
if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContactsNew)) {
@@ -439,17 +446,19 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
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.setInAccount(null);
payWorkingGroupSubItem.setPaidAmount(null);
BigDecimal taxRate = payWorkingGroupSubItem.getTaxRate();
BigDecimal receivableAmount = payWorkingGroupSubItem.getReceivableAmount();
BigDecimal noTaxAmount = receivableAmount.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
BigDecimal tax = receivableAmount.subtract(noTaxAmount);
payWorkingGroupSubItem.setNoTaxAmount(noTaxAmount);
payWorkingGroupSubItem.setTax(tax);
if (!Objects.isNull(taxRate)) {
BigDecimal noTaxAmount = receivableAmount.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
BigDecimal tax = receivableAmount.subtract(noTaxAmount);
payWorkingGroupSubItem.setNoTaxAmount(noTaxAmount);
payWorkingGroupSubItem.setTax(tax);
}
payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem);
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId, workingGroupSubItemId);
@@ -587,7 +596,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)) {
payWorkingGroupSubItemOld.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts);
}
setPayWorkingGroupSubItemEdit(payWorkingGroupSubItem, payWorkingGroupSubItemOld);
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(payWorkingGroup.getYear());
setPayWorkingGroupSubItemEdit(payWorkingGroupSubItem, payWorkingGroupSubItemOld, annualDataLocking);
List<PayWorkingGroupSubItemContacts> listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList();
// 添加联系人表
if (!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContactsNew)) {
@@ -612,7 +623,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
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.setInAccount(null);
payWorkingGroupSubItem.setPaidAmount(null);
@@ -664,6 +675,15 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
if (StringUtils.isBlank(workGroupId)) {
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();
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
@@ -763,11 +783,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
// if(CollectionUtils.isEmpty(listContactsInfo)){
// msg.append("excel中联系人不存在 ");
// }
// 获取工作组信息
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(workGroupId);
if (Objects.isNull(payWorkingGroup)) {
msg.append("工作组不存在 ");
}
if (StringUtils.isBlank(msg)) {
// 校验预估到账日期
@@ -782,7 +798,8 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
msg.append("").append(list.indexOf(p) + 3).append("行预估到账日期不能为空,请修改。<br/>");
} else {
try {
LocalDate.parse(estimatedArrivalDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
p.setEstimatedArrivalDate(estimatedArrivalDate + "-01");
LocalDate.parse(estimatedArrivalDate + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
} catch (Exception e) {
msg.append("").append(list.indexOf(p) + 3).append("行预估到账日期格式不正确,请修改。<br/>");
}
@@ -893,8 +910,11 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
}
});
if (StringUtils.isBlank(msg)) {
// 拷贝企业联系人
list.forEach(this::setPayWorkingGroupSubItemAdd);
for (PayWorkingGroupSubItem payWorkingGroupSubItem : list) {
setPayWorkingGroupSubItemAdd(payWorkingGroupSubItem, annualDataLocking);
}
// 更新数据
payWorkingGroupSubItemService.saveBatch(list);
list.forEach(p -> {
@@ -1157,7 +1177,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
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.eq(PayWorkingGroupSubItem::getId, p.getId());
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeWay, PayProjectCommon.CHARGE_WAY3);
@@ -1376,6 +1396,9 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
&& !Objects.equals(payWorkingGroup.getPrincipalIdB(), sysUser.getId())) {
throw new JeroBootException("工作组成员不可操作!");
}
String year = payWorkingGroup.getYear();
//判断用户是否能操作所选年份数据
AnnualDataLocking annualDataLocking = annualDataLockingService.judgeUserYear(year);
// 校验项目是否已关联合同 抛异常
payIncomeContractService.getPayIncomeContractAssociated(Collections.singletonList(payWorkingGroupSubItem.getId()));
// 如果已打报同步删除打包关联
@@ -1383,10 +1406,10 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
update.eq(PayPackCompanyProject::getProjectId, payWorkingGroupSubItem.getId());
payPackCompanyProjectService.remove(update);
// 删除企业联系人临时数据
payCompanyManagementTemporaryService.removeById(payWorkingGroupSubItem.getChargeCompanyTemporaryId());
//payCompanyManagementTemporaryService.removeById(payWorkingGroupSubItem.getChargeCompanyTemporaryId());
List<PayWorkingGroupSubItemContacts> subItemContacts = payWorkingGroupSubItemContactsMapper.getSubItemContacts(id);
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
* @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)) {
throw new JeroBootException("企业名称为空!");
}
@@ -1409,7 +1432,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
if (!CollectionUtils.isEmpty(payWorkingGroupSubItemContactsList)) {
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)) {
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)) {
throw new JeroBootException("邮寄联系人名称为空!");
}
@@ -1434,16 +1457,16 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
* @Return
* @Exception
*/
private void setPayWorkingGroupSubItemEdit(PayWorkingGroupSubItem payWorkingGroupSubItem, PayWorkingGroupSubItem payWorkingGroupSubItemOld) {
private void setPayWorkingGroupSubItemEdit(PayWorkingGroupSubItem payWorkingGroupSubItem, PayWorkingGroupSubItem payWorkingGroupSubItemOld, AnnualDataLocking annualDataLocking) {
if (!Objects.equals(payWorkingGroupSubItemOld.getChargeCompanyTemporaryId(), payWorkingGroupSubItem.getChargeCompanyId())) {
// 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payWorkingGroupSubItem.getChargeCompanyId());
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payWorkingGroupSubItem.getChargeCompanyId(), annualDataLocking);
if (Objects.isNull(chargeCompanyName)) {
throw new JeroBootException("企业名称为空!");
}
payWorkingGroupSubItem.setChargeCompanyTemporaryId(chargeCompanyName.getId());
payWorkingGroupSubItem.setChargeCompanyTemporaryName(chargeCompanyName.getCompanyName());
payCompanyManagementTemporaryService.removeById(payWorkingGroupSubItemOld.getChargeCompanyTemporaryId());
//payCompanyManagementTemporaryService.removeById(payWorkingGroupSubItemOld.getChargeCompanyTemporaryId());
} else {
payWorkingGroupSubItem.setChargeCompanyId(payWorkingGroupSubItemOld.getChargeCompanyId());
}
@@ -1453,7 +1476,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
// 删除临时表历史记录
if (!CollectionUtils.isEmpty(payWorkingGroupSubItemOld.getPayWorkingGroupSubItemContactsList())) {
List<String> list = payWorkingGroupSubItemOld.getPayWorkingGroupSubItemContactsList().stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList());
payContactsManagementTemporaryService.removeByIds(list);
// paycontactsManagementTemporaryService.removeByIds(list);
}
// 删除联系人记录
LambdaUpdateWrapper<PayWorkingGroupSubItemContacts> updatePayWorkingGroupSubItemContacts = new LambdaUpdateWrapper<>();
@@ -1462,7 +1485,7 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
// 新增
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)) {
throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!");
}
@@ -1472,15 +1495,28 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
}
if (!Objects.equals(payWorkingGroupSubItemOld.getMailContactsTemporaryId(), payWorkingGroupSubItem.getMailContactsId())) {
// 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItem.getMailContactsId());
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItem.getMailContactsId(), annualDataLocking);
if (Objects.isNull(mailContactsName)) {
throw new JeroBootException("邮寄联系人名称为空!");
}
payWorkingGroupSubItem.setMailContactsTemporaryId(mailContactsName.getId());
payWorkingGroupSubItem.setMailContactsTemporaryName(mailContactsName.getName());
payContactsManagementTemporaryService.removeById(payWorkingGroupSubItemOld.getMailContactsTemporaryId());
// payContactsManagementTemporaryService.removeById(payWorkingGroupSubItemOld.getMailContactsTemporaryId());
} else {
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 confirmAmount = BigDecimal.ZERO;
for (AllProjectStatistics item : list) {
BigDecimal allMoney1 = new BigDecimal(item.getAllMoney());
BigDecimal allMoney1 = new BigDecimal(item.getEstimatedArrivalMoney());
allMoney = allMoney.add(allMoney1);
BigDecimal comeAllMoney1 = new BigDecimal(item.getComeAllMoney());
comeAllMoney = comeAllMoney.add(comeAllMoney1);
@@ -105,6 +105,6 @@ public class AllProjectMoneyStatisticsController {
public ModelAndView excel(AllProjectStatisticsSearch allProjectStatisticsSearch,
@RequestParam(name = "selections", required = false) String selections) {
List<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.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.constant.CommonConstant;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.oConvertUtils;
import com.jero.mail.commont.constant;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.modules.system.model.SysUserSysDepartModel;
import com.jero.modules.system.service.ISysDepartService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.project.service.IPayWorkingGroupService;
@@ -21,6 +23,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
@@ -82,10 +85,10 @@ public class AllProjectStatisticsController {
//处理为空数据为0
for (AllProjectStatistics s : pageList.getRecords()) {
if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
s.setAllMoney("0.00");
s.setAllMoney(CommonConstant.ZERO);
}
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
s.setComeAllMoney("0.00");
s.setComeAllMoney(CommonConstant.ZERO);
}
}
@@ -151,10 +154,10 @@ public class AllProjectStatisticsController {
//处理为空数据为0
for (AllProjectStatistics s : pageList.getRecords()) {
if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
s.setAllMoney("0.00");
s.setAllMoney(CommonConstant.ZERO);
}
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
s.setComeAllMoney("0.00");
s.setComeAllMoney(CommonConstant.ZERO);
}
}
@@ -170,12 +173,12 @@ public class AllProjectStatisticsController {
}
/**
* 领导统计导出
* 所统计导出
*/
@RequiresPermissions("wholeInstituteStatistics:export")
@AutoLog(value = "全所统计导出-导出统计")
@AutoLog(value = "全所统计-导出统计")
@GetMapping(value = "/statistics/excel")
@ApiOperation(value = "全所统计导出-导出统计", notes = "全所统计导出-导出统计")
@ApiOperation(value = "全所统计-导出统计", notes = "全所统计导出-导出统计")
public ModelAndView excel(AllProjectStatisticsSearch allProjectStatisticsSearch,
@RequestParam(name = "selections", required = false) String selections) {
allProjectStatisticsSearch.setProjectName(oConvertUtils.replaceAllPercent(allProjectStatisticsSearch.getProjectName()));
@@ -193,16 +196,26 @@ public class AllProjectStatisticsController {
String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key);
s.setChargeUse_text(payment_charge_use);
//处理为空数据为0
if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
s.setAllMoney("0.00");
String allMoney = s.getAllMoney();
if (StringUtils.isBlank(allMoney)) {
s.setAllMoney(CommonConstant.ZERO);
}
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
s.setComeAllMoney("0.00");
String comeAllMoney = s.getComeAllMoney();
if (StringUtils.isBlank(comeAllMoney)) {
s.setComeAllMoney(CommonConstant.ZERO);
}
String confirmAmount = s.getConfirmAmount();
if (StringUtils.isBlank(confirmAmount)) {
s.setConfirmAmount(CommonConstant.ZERO);
}
String billMoney = s.getBillMoney();
if (StringUtils.isBlank(billMoney)) {
s.setBillMoney(CommonConstant.ZERO);
}
}
}
return AmountUtil.exportListXls(pageList, AllProjectStatistics.class, "领导统计");
return AmountUtil.exportListXls(pageList, AllProjectStatistics.class, "所统计");
}
@@ -239,18 +252,28 @@ public class AllProjectStatisticsController {
return AmountUtil.exportListXls(objects, AllProjectStatistics.class, "科室统计");
}
List<AllProjectStatistics> pageList = payWorkingGroupService.queryPageListExcel(allProjectStatisticsSearch, idList);
List<AllProjectStatistics> pageList = payWorkingGroupService.queryPageListExcelForProject(allProjectStatisticsSearch, idList);
if (pageList != null) {
for (AllProjectStatistics s : pageList) {
String key = String.valueOf(s.getChargeUse());
String payment_charge_use = sysBaseAPI.translateDict("payment_charge_use", key);
s.setChargeUse_text(payment_charge_use);
//处理为空数据为0
if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
s.setAllMoney("0.00");
String allMoney = s.getAllMoney();
if (StringUtils.isBlank(allMoney)) {
s.setAllMoney(CommonConstant.ZERO);
}
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
s.setComeAllMoney("0.00");
String comeAllMoney = s.getComeAllMoney();
if (StringUtils.isBlank(comeAllMoney)) {
s.setComeAllMoney(CommonConstant.ZERO);
}
String confirmAmount = s.getConfirmAmount();
if (StringUtils.isBlank(confirmAmount)) {
s.setConfirmAmount(CommonConstant.ZERO);
}
String billMoney = s.getBillMoney();
if (StringUtils.isBlank(billMoney)) {
s.setBillMoney(CommonConstant.ZERO);
}
}
}
@@ -264,8 +287,8 @@ public class AllProjectStatisticsController {
queryWrapper.eq("org_code", departCode);
queryWrapper.eq("del_flag", 0);
queryWrapper.eq("status", 1);
List<SysUser> pageList = sysUserService.list(queryWrapper);
return Result.OK(pageList);
List<SysUser> sysUserSysDepartModels = sysUserService.listUserByOrgCode(departCode);
return Result.OK(sysUserSysDepartModels);
}
/**
@@ -304,11 +327,22 @@ public class AllProjectStatisticsController {
HashMap<String, Object> hashMap = new HashMap<>();
//处理为空数据为0
for (DepartStatistics s : pageList.getRecords()) {
if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
s.setAllMoney("0.00");
//处理为空数据为0
String allMoney = s.getAllMoney();
if (StringUtils.isBlank(allMoney)) {
s.setAllMoney(CommonConstant.ZERO);
}
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
s.setComeAllMoney("0.00");
String comeAllMoney = s.getComeAllMoney();
if (StringUtils.isBlank(comeAllMoney)) {
s.setComeAllMoney(CommonConstant.ZERO);
}
String confirmAmount = s.getConfirmAmount();
if (StringUtils.isBlank(confirmAmount)) {
s.setConfirmAmount(CommonConstant.ZERO);
}
String billMoney = s.getBillMoney();
if (StringUtils.isBlank(billMoney)) {
s.setBillMoney(CommonConstant.ZERO);
}
}
@@ -353,11 +387,22 @@ public class AllProjectStatisticsController {
List<DepartStatistics> list = payWorkingGroupService.queryPageListDepartmentExcel(departStatisticsSearch, idList);
//处理为空数据为0
for (DepartStatistics s : list) {
if (s.getAllMoney() == null || s.getAllMoney().equals("")) {
s.setAllMoney("0.00");
//处理为空数据为0
String allMoney = s.getAllMoney();
if (StringUtils.isBlank(allMoney)) {
s.setAllMoney(CommonConstant.ZERO);
}
if (s.getComeAllMoney() == null || s.getComeAllMoney().equals("")) {
s.setComeAllMoney("0.00");
String comeAllMoney = s.getComeAllMoney();
if (StringUtils.isBlank(comeAllMoney)) {
s.setComeAllMoney(CommonConstant.ZERO);
}
String confirmAmount = s.getConfirmAmount();
if (StringUtils.isBlank(confirmAmount)) {
s.setConfirmAmount(CommonConstant.ZERO);
}
String billMoney = s.getBillMoney();
if (StringUtils.isBlank(billMoney)) {
s.setBillMoney(CommonConstant.ZERO);
}
}
return AmountUtil.exportListXls(list, DepartStatistics.class, "科室总体统计");

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