diff --git a/db/24年1月中旬需求变更新增.sql b/db/24年1月中旬需求变更新增.sql new file mode 100644 index 00000000..c2d26f58 --- /dev/null +++ b/db/24年1月中旬需求变更新增.sql @@ -0,0 +1,160 @@ +-- 新增 pay_drafting_group表(起草组表) +CREATE TABLE `pay_drafting_group` ( + `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键', + `drafting_group_project` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '起草组项目', + `working_group_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '工作组id', + `year` int NULL DEFAULT NULL COMMENT '运行年份', + `principal_id_a` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人Aid', + `principal_name_a` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人名称A', + `principal_id_b` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人Bid', + `principal_name_b` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '负责人名称B', + `convoke_num` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '每年召开次数', + `operation_cycle` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '运行周期', + `mission_and_objectives` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务及目标', + `remarks` varchar(200) 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; + +-- 新增 pay_drafting_group_subitem表 (起草组成员表) +CREATE TABLE `pay_drafting_group_subitem` ( + `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '主键', + `drafting_group_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '起草组id', + `charge_company_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成员单位id', + `charge_company_temporary_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '临时成员单位id', + `charge_company_temporary_name` varchar(55) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '临时成员单临时成员单位(未审核状态下会多出5位,因此修改成55长度)', + `contacts_id_one` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '企业联系人一id', + `contacts_temporary_id_one` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '临时企业联系人一id', + `contacts_temporary_name_one` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '临时企业联系人一名称', + `remarks_one` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人备注1', + `check_result` int NULL DEFAULT NULL COMMENT '审核状态 1-未审核 2-已通过 3-已驳回', + `check_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '审核说明', + `contacts_id_two` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '企业联系人二id', + `contacts_temporary_id_two` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '临时企业联系人二id', + `contacts_temporary_name_two` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '临时企业联系人二名称', + `remarks_two` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人备注2', + `contacts_id_three` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '企业联系人三id', + `contacts_temporary_id_three` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '临时企业联系人三id', + `contacts_temporary_name_three` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '临时企业联系人三名称', + `remarks_three` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人备注3', + `remarks` varchar(200) 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, + UNIQUE INDEX `working_drafting_id_and_company_id_index`(`drafting_group_id`, `charge_company_id`) USING BTREE COMMENT '工作组与企业唯一', + INDEX `working_drafting_company_index`(`charge_company_temporary_name`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '起草组成员表' ROW_FORMAT = Dynamic; + +-- 新增 pay_drafting_group_subitem_contacts表(起草组成员-企业联系人表) +CREATE TABLE `pay_drafting_group_subitem_contacts` ( + `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `drafting_group_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '起草组id', + `drafting_group_sub_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '起草组成员id', + `contacts_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '企业联系人id', + `contacts_temporary_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '临时企业联系人id', + `contacts_temporary_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '临时企业联系人名称', + `remarks` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人备注', + `order_num` int 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, + INDEX `idx_wg_working_group_id`(`drafting_group_id`) USING BTREE, + INDEX `idx_wg_working_group_sub_id`(`drafting_group_sub_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '起草组成员-企业联系人表' ROW_FORMAT = Dynamic; + +-- 新增 pay_drafting_group_research_project表(起草组-在研项目表) +CREATE TABLE `pay_drafting_group_research_project` ( + `id` varchar(32) CHARACTER SET utf16 COLLATE utf16_general_ci NOT NULL COMMENT '主键', + `drafting_group_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '起草组id', + `project_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目名称', + `draft_company` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主要起草单位', + `files` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '过程文件', + `project_schedule` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目进度', + `create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `committee_name_index`(`project_name`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '起草组-在研项目表' ROW_FORMAT = Dynamic; + +-- 新增 pay_drafting_group_research_project_file表(起草组-在研项目-资料文件表) +CREATE TABLE `pay_drafting_group_research_project_file` ( + `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键', + `project_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目id', + `file_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件id', + `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; + +-- pay_meeting表 新增 drafting_group_id(起草组id),drafting_group_name(起草组名称)字段 +ALTER TABLE `pay_meeting` ADD COLUMN `drafting_group_id` varchar(50) COMMENT '起草组id'; +ALTER TABLE `pay_meeting` ADD COLUMN `drafting_group_name` varchar(50) COMMENT '起草组名称'; + +-- sys_permission表 新增起草组相关菜单 +INSERT INTO `income_payments`.`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 ('1744975224801075202', '1736675369997905922', '审核', '', NULL, NULL, NULL, 2, 'draftingGroupMember:check', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-10 14:51:28', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744650871911792641', '1742070808427126785', '上传会议纪要', NULL, NULL, NULL, NULL, 2, 'draftGroupMeeting:uploadCouncil', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 17:22:37', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744650747009613826', '1742070808427126785', '删除', '', NULL, NULL, NULL, 2, 'draftGroupMeeting:delete', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 17:22:07', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744650680030773249', '1742070808427126785', '编辑', '', NULL, NULL, NULL, 2, 'draftGroupMeeting:edit', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 17:21:51', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744650603614748673', '1742070808427126785', '上传文件', '', NULL, NULL, NULL, 2, 'draftGroupMeeting:upload', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 17:21:33', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744650486782410753', '1742070808427126785', '发布', NULL, NULL, NULL, NULL, 2, 'draftGroupMeeting:publish', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 17:21:05', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744650398005772289', '1742070808427126785', '批量删除', '', NULL, NULL, NULL, 2, 'draftGroupMeeting:batchDel', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 17:20:44', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744650314702700546', '1742070808427126785', '导出', '', NULL, NULL, NULL, 2, 'draftGroupMeeting:export', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 17:20:24', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744650199401283585', '1742070808427126785', '新增', '', NULL, NULL, NULL, 2, 'draftGroupMeeting:add', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 17:19:56', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744650007667064833', '1742070808427126785', '查询', NULL, NULL, NULL, NULL, 2, 'draftGroupMeeting:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 17:19:11', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744618617370066946', '1744610339198091266', '资料状态(嘉宾是否可以在企业端上传)', NULL, NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:guestsUploadFileFlag', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 15:14:26', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744618038157656066', '1744610339198091266', '审核凭证', NULL, NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:auditSignUp', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 15:12:08', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744617928828928002', '1744610339198091266', '审核报名信息', NULL, NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:auditCredentials', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 15:11:42', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744617734913671170', '1744610339198091266', '删除', '', NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:delete', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 15:10:56', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744617671705509890', '1744610339198091266', '编辑', '', NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:edit', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 15:10:41', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744617607901757441', '1744610339198091266', '批量删除', NULL, NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:batchDel', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 15:10:26', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744617378741764097', '1744610339198091266', '导出', NULL, NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:export', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 15:09:31', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744617286152503297', '1744610339198091266', '添加参会人', NULL, NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:add', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 15:09:09', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744617202534858754', '1744610339198091266', '查询', '', NULL, NULL, NULL, 2, 'draftGroupMeetingSituation:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 15:08:49', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744610339198091266', '1430376424950026242', '起草组参会情况', '/incomePayments/meetManage/AttendanceDraftGroupMeeting', 'incomePayments/meetManage/Attendance', NULL, NULL, 1, NULL, '1', 22.00, 0, NULL, 1, 0, 0, 1, NULL, 'LKGLZ', '2024-01-09 14:41:33', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744557748690894850', '1742065161262358530', '删除', '', NULL, NULL, NULL, 2, 'draftingGroup:underStudy:delete', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 11:12:34', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744557677312229378', '1742065161262358530', '编辑', '', NULL, NULL, NULL, 2, 'draftingGroup:underStudy:edit', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 11:12:17', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744557618365480962', '1742065161262358530', '批量删除', '', NULL, NULL, NULL, 2, 'draftingGroup:underStudy:batchDel', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 11:12:03', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744557548442238978', '1742065161262358530', '新增', '', NULL, NULL, NULL, 2, 'draftingGroup:underStudy:add', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 11:11:47', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744557479416578050', '1742065161262358530', '查询', '', NULL, NULL, NULL, 2, 'draftingGroup:underStudy:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 11:11:30', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744556066435252226', '1736675369997905922', '新增', '', NULL, NULL, NULL, 2, 'draftingGroupMember:add', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 11:05:53', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744553118539988993', '1736675369997905922', '编辑', '', NULL, NULL, NULL, 2, 'draftingGroupMember:edit', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:54:10', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744552595946487809', '1736675369997905922', '删除', '', NULL, NULL, NULL, 2, 'draftingGroupMember:delete', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:52:06', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744552520780365825', '1736675369997905922', '批量删除', '', NULL, NULL, NULL, 2, 'draftingGroupMember:batchDel', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:51:48', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744552416749043714', '1736675369997905922', '下载模板', '', NULL, NULL, NULL, 2, 'draftingGroupMember:downTemplate', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:51:23', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744552350437097473', '1736675369997905922', '导出', '', NULL, NULL, NULL, 2, 'draftingGroupMember:export', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:51:07', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744552151597727745', '1736675369997905922', '导入', '', NULL, NULL, NULL, 2, 'draftingGroupMember:import', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:50:20', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744551907694755841', '1736675369997905922', '查询', '', NULL, NULL, NULL, 2, 'draftingGroupMember:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:49:22', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744550770337923073', '1736668960149286914', '在研项目', '', NULL, NULL, NULL, 2, 'draftingGroup:underStudyProject', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:44:50', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744550626938863617', '1736668960149286914', '删除', NULL, NULL, NULL, NULL, 2, 'draftingGroup:delete', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:44:16', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744550489080479745', '1736668960149286914', '基本信息维护', '', NULL, NULL, NULL, 2, 'draftingGroup:edit', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:43:43', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744550409195765762', '1736668960149286914', '复制', '', NULL, NULL, NULL, 2, 'draftingGroup:copy', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:43:24', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744550212579377153', '1736668960149286914', '起草组会议', '', NULL, NULL, NULL, 2, 'draftingGroup:meetingMaintenance', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:42:38', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744550123177787393', '1736668960149286914', '其他分发资料', '', NULL, NULL, NULL, 2, 'draftingGroup:fileMaintenance', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:42:16', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744549961910992898', '1736668960149286914', '批量删除', '', NULL, NULL, NULL, 2, 'draftingGroup:batchDel', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:41:38', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744549877257355266', '1736668960149286914', '新增', '', NULL, NULL, NULL, 2, 'draftingGroup:add', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:41:18', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1744549760974471169', '1736668960149286914', '查询', '', NULL, NULL, NULL, 2, 'draftingGroup:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2024-01-09 10:40:50', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1736675369997905922', '1430376424950026242', '起草组成员维护', '/draftingGroup/DraftingGroupMemberUnitMaintenance', 'draftingGroup/DraftingGroupMemberUnitMaintenance', NULL, NULL, 1, NULL, '1', 20.00, 0, NULL, 1, 0, 0, 0, NULL, 'LKGLZ', '2023-12-18 17:10:49', NULL, NULL, 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1736668960149286914', '', '起草组管理', '/draftingGroup/DraftingGroupManagement', 'draftingGroup/DraftingGroupManagement', NULL, NULL, 0, NULL, '1', 3.10, 0, 'cus_working', 1, 0, 0, 0, NULL, 'LKGLZ', '2023-12-18 16:45:20', 'LKGLZ', '2024-01-09 15:20:33', 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1742065161262358530', '1430376424950026242', '起草组在研项目', '/draftingGroup/DraftingGroupUnderStudyProject', 'draftingGroup/DraftingGroupUnderStudyProject', NULL, NULL, 1, NULL, '1', 21.00, 0, NULL, 1, 0, 0, 1, NULL, 'LKGLZ', '2024-01-02 14:07:55', 'LKGLZ', '2024-01-02 14:08:09', 0, 0, '1', 0, 1); +INSERT INTO `income_payments`.`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 ('1742070808427126785', '1430376424950026242', '起草组会议维护', '/draftingGroup/ConferenceMaintenance', 'draftingGroup/ConferenceMaintenance', NULL, NULL, 1, NULL, '1', 22.00, 0, NULL, 1, 0, 0, 1, NULL, 'LKGLZ', '2024-01-02 14:30:21', 'LKGLZ', '2024-01-02 14:30:32', 0, 0, '1', 0, 1); + +-- sys_dict_item表 新增 起草组会议类型 +INSERT INTO `income_payments`.`sys_dict_item`(`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('1477781428149047297', '1432280766382727169', '起草组会议', '7', '起草组会议', 7.00, 1, 'LKGLZ', '2024-01-05 14:56:54', NULL, NULL); + + +ALTER TABLE `pay_meeting` + MODIFY COLUMN `remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注' AFTER `hotel_address`; + + + diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java index 60449e9d..0953459f 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/shiro/ShiroConfig.java @@ -201,6 +201,11 @@ public class ShiroConfig { // 快递100-快递信息 filterChainDefinitionMap.put("/mail/postInfo/queryInfo","anon"); + // 起草组报名-按照id查询 + filterChainDefinitionMap.put("/drafting/payDraftingGroup/applyQueryById","anon"); + // 起草组报名-提交信息 + filterChainDefinitionMap.put("/drafting/payDraftingGroupSubitem/addByQRCode","anon"); + // 添加自己的过滤器并且取名为jwt Map filterMap = new HashMap(1); //如果cloudServer为空 则说明是单体 需要加载跨域配置 diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java index 7b2c8d5c..2dd71d98 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/common/ProjectCommon.java @@ -37,6 +37,10 @@ public class ProjectCommon { * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目,6:证书) */ public final static String PROJECT_TYPE6 = "6"; + /** + * 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目,6:证书,7: 起草组项目) + */ + public final static String PROJECT_TYPE7 = "7"; /** * 来源(1:收入合同,2:打包管理) */ @@ -204,4 +208,6 @@ public class ProjectCommon { * 条件 0为发送创建通知,1为发送缴费通知 */ public final static String FLAG1 = "1"; + + public final static String INFO_TYPE9 = "9"; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml index e517f30c..730b3719 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/mapper/xml/ProjectDetailMapper.xml @@ -75,6 +75,52 @@ AND tmps.id = #{projectId} + 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, + '', + '', + '', + '' + 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 + + + AND gsub.id = #{projectId} + + + SELECT + distinct pdg.id, + pdg.drafting_group_project AS draftingGroupProject, + pdg.working_group_id AS workingGroupId, + pdg.year, + pdg.principal_id_a AS principalIdA, + pdg.principal_id_b AS principalIdB, + pdg.convoke_num AS convokeNum, + pdg.operation_cycle AS operationCycle, + pdg.mission_and_objectives AS missionAndObjectives, + pdg.remarks, + pdg.create_by AS createBy, + pdg.create_time AS createTime, + pdg.update_by AS updateBy, + pdg.update_time AS updateTime, + su.realname AS principalNameA, + su1.realname AS principalNameB, + pwg.working_group_project AS workingGroupName + FROM pay_drafting_group pdg + left join sys_user su on pdg.principal_id_a = su.id + left join sys_user su1 on pdg.principal_id_b = su1.id + left join pay_working_group pwg on pwg.id = pdg.working_group_id + + + left join pay_drafting_group_subitem pdgs on pdg.id = pdgs.drafting_group_id + left JOIN pay_drafting_group_subitem_contacts pdgsc on pdgsc.drafting_group_sub_id = pdgs.id + + + + + + + + + AND drafting_group_project LIKE concat('%',concat(#{payDraftingGroup.draftingGroupProject},'%')) + + + AND pdg.principal_id_a = #{payDraftingGroup.principalIdA} + + + AND pdg.year = #{payDraftingGroup.year} + + + AND working_group_id = #{payDraftingGroup.workingGroupId} + + + AND pwg.working_group_project like concat('%', #{payDraftingGroup.workingGroupName}, '%') + + + and pdgsc.contacts_temporary_name like concat('%', #{payDraftingGroup.companyContactName}, '%') + + + and pdgs.charge_company_temporary_name like concat('%', #{payDraftingGroup.companyName}, '%') + + + ORDER BY pdg.create_time DESC + + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupResearchProjectMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupResearchProjectMapper.xml new file mode 100644 index 00000000..6b30da2a --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupResearchProjectMapper.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + insert into pay_drafting_group_research_project_file (id,project_id,file_id) value (#{id},#{projectId},#{fileId}) + + + + + + delete from pay_drafting_group_research_project_file where project_id=#{id} + + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupSubItemContactsMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupSubItemContactsMapper.xml new file mode 100644 index 00000000..add1acce --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupSubItemContactsMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupSubItemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupSubItemMapper.xml new file mode 100644 index 00000000..8e8c8a91 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/mapper/xml/PayDraftingGroupSubItemMapper.xml @@ -0,0 +1,118 @@ + + + + + + + + + + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupResearchProjectService.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupResearchProjectService.java new file mode 100644 index 00000000..e6803146 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupResearchProjectService.java @@ -0,0 +1,42 @@ +package com.jero.drafting.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.drafting.entity.PayDraftingGroupResearchProject; +import com.jero.drafting.entity.PayDraftingGroupSubItemContacts; +import com.jero.project.entity.PayResearchProject; + +/** + *

+ * 起草组 在研项目表 服务类 + *

+ * + * @author sz + * @since 2024-01-05 + */ +public interface IPayDraftingGroupResearchProjectService extends IService { + + /** + * 分页条件查询 + * @param page + * @param queryWrapper + * @return + */ + IPage pageList(Page page, QueryWrapper queryWrapper); + + /** + * 新增 + * @param id + * @param fileId + * @param projectId + */ + void saveFile(String id, String fileId, String projectId); + + /** + * 通过id删除 + * @param id + */ + void deleteFile(String id); +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupService.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupService.java new file mode 100644 index 00000000..65cde88b --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupService.java @@ -0,0 +1,61 @@ +package com.jero.drafting.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.drafting.entity.PayDraftingGroup; +import com.jero.drafting.vo.PayDraftingGroupVo; +import com.jero.project.entity.PayWorkingGroup; +import com.jero.project.vo.PayWorkingGroupVO; + +import java.util.List; + +/** + *

+ * 起草组表 服务类 + *

+ * + * @author sz + * @since 2024-01-02 + */ +public interface IPayDraftingGroupService extends IService { + + /** + * 分页查询 + * @param page + * @param payDraftingGroup + * @return + */ + IPage queryPageList(Page page, PayDraftingGroup payDraftingGroup); + + /** + * 给PayDraftingGroup 属性赋值 + * @param payDraftingGroup + */ + void setPayDraftingGroup(PayDraftingGroup payDraftingGroup); + + /** + * 根据工作组的id拿到工作组的名称 + * @param payWorkingGroupId + * @return + */ + PayWorkingGroup getPayWorkingGroupNameById(String payWorkingGroupId); + + /** + * 根据id删除 + * @param id + */ + void deleteById(String id); + + /** + * 批量删除 + * @param ids + */ + void deleteByIds(List ids); + + /** + * 复制 + * @param payDraftingGroup + */ + void copy(PayDraftingGroup payDraftingGroup); +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupSubItemContactsService.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupSubItemContactsService.java new file mode 100644 index 00000000..14895ce2 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupSubItemContactsService.java @@ -0,0 +1,19 @@ +package com.jero.drafting.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.drafting.entity.PayDraftingGroupSubItemContacts; + +import java.util.List; + +/** + *

+ * 起草组成员企业联系人表 服务类 + *

+ * + * @author sz + * @since 2024-01-02 + */ +public interface IPayDraftingGroupSubItemContactsService extends IService { + + List getContactsInfo(String projectId); +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupSubItemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupSubItemService.java new file mode 100644 index 00000000..1a6ccd27 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/IPayDraftingGroupSubItemService.java @@ -0,0 +1,96 @@ +package com.jero.drafting.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.drafting.entity.PayDraftingGroupSubItem; +import com.jero.drafting.vo.CheckVo; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + *

+ * 起草组成员表 服务类 + *

+ * + * @author sz + * @since 2024-01-02 + */ +public interface IPayDraftingGroupSubItemService extends IService { + + /** + * 分页查询 + * @param page + * @param payDraftingGroupSubItem + * @param paymentDate + * @return + */ + IPage queryPageList(Page page, PayDraftingGroupSubItem payDraftingGroupSubItem, String paymentDate); + + /** + * 添加 + * @param payDraftingGroupSubItem + */ + void addPayDraftingGroupSubItem(PayDraftingGroupSubItem payDraftingGroupSubItem); + + /** + * 根据id删除 + * @param id + */ + void delete(String id); + + /** + * 批量删除 + * @param ids + */ + void deleteBatch(String ids); + + /** + * 编辑 + * @param payDraftingGroupSubItem + */ + void editPayWorkingGroupSubItem(PayDraftingGroupSubItem payDraftingGroupSubItem); + + + /** + * 企业端编辑 + * @param payDraftingGroupSubItem + */ + void editPayWorkingGroupSubItemByCompany(PayDraftingGroupSubItem payDraftingGroupSubItem); + + /** + * excel导入 + * @param request + */ + void importExcel(HttpServletRequest request); + + /** + * 起草组成员-发布提醒列表查询 + * @param page + * @param payDraftingGroupSubItem + * @return + */ + IPage publishReminderList(Page page, PayDraftingGroupSubItem payDraftingGroupSubItem); + + /** + * 审核报名信息 + * @param checkVO + */ + void checkRegister(CheckVo checkVO); + + /** + * @Description 企业端-我的工作组分页查询 + * @Author lqt + * @Date 2021/9/29 + * @Param listProjectIds 项目成员id集合 + * @Return + * @Exception + */ + IPage queryCompanyPageList(Page page, PayDraftingGroupSubItem payWorkingGroupSubItem, List listNeedInvoice, List listProjectIds); + + /** + * 企业端-管理员-我的工作组分页查询 + */ + IPage queryCompanyPageListByCompanyManager(Page page, PayDraftingGroupSubItem payWorkingGroupSubItem, List listNeedInvoice, String companyId); +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupResearchProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupResearchProjectServiceImpl.java new file mode 100644 index 00000000..d02f14d3 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupResearchProjectServiceImpl.java @@ -0,0 +1,65 @@ +package com.jero.drafting.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.drafting.entity.PayDraftingGroupResearchProject; +import com.jero.drafting.entity.PayDraftingGroupSubItemContacts; +import com.jero.drafting.mapper.PayDraftingGroupResearchProjectMapper; +import com.jero.drafting.mapper.PayDraftingGroupSubItemContactsMapper; +import com.jero.drafting.service.IPayDraftingGroupResearchProjectService; +import com.jero.drafting.service.IPayDraftingGroupSubItemContactsService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.annotation.Resource; + +/** + *

+ * 起草组 在研项目表 服务实现类 + *

+ * + * @author sz + * @since 2024-01-05 + */ +@Service +@Transactional +public class PayDraftingGroupResearchProjectServiceImpl extends ServiceImpl implements IPayDraftingGroupResearchProjectService { + + @Resource + private PayDraftingGroupResearchProjectMapper researchProjectMapper; + + /** + * 分页条件查询 + * @param page + * @param queryWrapper + * @return + */ + @Override + public IPage pageList(Page page, QueryWrapper queryWrapper) { + return researchProjectMapper.pageList(page,queryWrapper); + } + + /** + * 新增 + * @param id + * @param fileId + * @param projectId + */ + @Override + public void saveFile(String id, String fileId, String projectId) { + researchProjectMapper.saveFile(id,fileId,projectId); + } + + /** + * 通过id删除 + * + * @param id + */ + @Override + public void deleteFile(String id) { + researchProjectMapper.deleteFile(id); + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupServiceImpl.java new file mode 100644 index 00000000..7c3bc046 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupServiceImpl.java @@ -0,0 +1,399 @@ +package com.jero.drafting.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.common.ProjectCommon; +import com.jero.common.dto.PaySendContactsMessageDTO; +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.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; +import com.jero.drafting.entity.PayDraftingGroupSubItemContacts; +import com.jero.drafting.mapper.PayDraftingGroupMapper; +import com.jero.drafting.mapper.PayDraftingGroupSubItemContactsMapper; +import com.jero.drafting.service.IPayDraftingGroupResearchProjectService; +import com.jero.drafting.service.IPayDraftingGroupService; +import com.jero.drafting.service.IPayDraftingGroupSubItemService; +import com.jero.drafting.vo.PayDraftingGroupVo; +import com.jero.meeting.common.MeetingCommon; +import com.jero.meeting.entity.PayMeeting; +import com.jero.meeting.service.IPayMeetingService; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysUserService; +import com.jero.project.entity.PayWorkingGroup; +import com.jero.project.service.IPayWorkingGroupService; +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.ObjectUtils; +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 java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + *

+ * 起草组表 服务实现类 + *

+ * + * @author sz + * @since 2024-01-02 + */ +@Service +@Transactional +public class PayDraftingGroupServiceImpl extends ServiceImpl implements IPayDraftingGroupService { + + @Resource + private PayDraftingGroupMapper payDraftingGroupMapper; + @Resource + private ISysUserService sysUserService; + @Resource + private IPayWorkingGroupService payWorkingGroupService; + @Resource + private RolePermissionService rolePermissionService; + @Resource + private IPayDraftingGroupSubItemService payDraftingGroupSubItemService; + @Resource + private IPayMeetingService payMeetingService; + @Resource + private IPayDraftingGroupService payDraftingGroupService; + @Resource + private IPayDraftingGroupResearchProjectService payDraftingGroupResearchProjectService; + @Resource + private IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService; + @Resource + private PayDraftingGroupSubItemContactsMapper payDraftingGroupSubItemContactsMapper; + @Resource + private IPayContactsManagementTemporaryService payContactsManagementTemporaryService; + @Resource + private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService; + @Resource + private IPayContactsManagementService payContactsManagementService; + + + /** + * 分页查询 + * + * @param page + * @param payDraftingGroup + * @return + */ + @Override + public IPage queryPageList(Page page, PayDraftingGroup payDraftingGroup) { + return payDraftingGroupMapper.queryPageList(page, payDraftingGroup); + } + + /** + * 获取负责人A的名称 + * + * @param payDraftingGroup + */ + @Override + public void setPayDraftingGroup(PayDraftingGroup payDraftingGroup) { + // 负责人A名称 + SysUser principalIdA = sysUserService.getById(payDraftingGroup.getPrincipalIdA()); + if (Objects.isNull(principalIdA)) { + throw new JeroBootException("负责人A不存在!"); + } + payDraftingGroup.setPrincipalNameA(principalIdA.getRealname()); + // 负责人B名称 + if (!Objects.isNull(payDraftingGroup.getPrincipalIdB())) { + SysUser principalIdB = sysUserService.getById(payDraftingGroup.getPrincipalIdB()); + if (Objects.isNull(principalIdB)) { + throw new JeroBootException("负责人B不存在!"); + } + payDraftingGroup.setPrincipalNameB(principalIdB.getRealname()); + } + } + + /** + * 根据工作组的id拿到工作组的名称 + * + * @param payWorkingGroupId + * @return + */ + @Override + public PayWorkingGroup getPayWorkingGroupNameById(String payWorkingGroupId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PayWorkingGroup::getId, payWorkingGroupId); + PayWorkingGroup payWorkingGroup = payWorkingGroupService.getOne(queryWrapper); + return payWorkingGroup; + } + + /** + * 根据id删除 + * + * @param id + */ + @Override + public void deleteById(String id) { + PayDraftingGroup payDraftingGroupOld = getById(id); + if (Objects.isNull(payDraftingGroupOld)) { + throw new JeroBootException("该起草组不存在!"); + } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (!rolePermissionService.getRolePermission("draftingGroup:delete") && !Objects.equals(payDraftingGroupOld.getPrincipalIdA(), sysUser.getId())) { + throw new JeroBootException(payDraftingGroupOld.getDraftingGroupProject() + "起草组项目不可操作!"); + } + + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(PayDraftingGroupSubItem::getDraftingGroupId, id); + List listPayDraftingGroupSubItem = payDraftingGroupSubItemService.list(query); + if (!CollectionUtils.isEmpty(listPayDraftingGroupSubItem)) { + throw new JeroBootException(payDraftingGroupOld.getDraftingGroupProject() + "起草组下存在企业,不可进行删除!"); + } + +// LambdaQueryWrapper query = new LambdaQueryWrapper<>(); +// query.eq(PayDraftingGroupSubItem::getDraftingGroupId, id); +// List listPayDraftingGroupSubItem = payDraftingGroupSubItemService.list(query); +// if (!CollectionUtils.isEmpty(listPayDraftingGroupSubItem)) { +// for (PayDraftingGroupSubItem payDraftingGroupSubItem : listPayDraftingGroupSubItem) { +// if (!Objects.equals(payDraftingGroupSubItem.getCheckResult(), DraftingConstant.CHECK_REJECTION)) { +// throw new JeroBootException(payDraftingGroupOld.getDraftingGroupProject() + "起草组下存在企业,不可进行删除!"); +// } +// } +// } + + LambdaQueryWrapper meetingQuery = new LambdaQueryWrapper<>(); + meetingQuery.eq(PayMeeting::getDraftingGroupId,id); + meetingQuery.eq(PayMeeting::getMeetingType, MeetingCommon.DRAFTING_GROUP_MEETING_INT); + List listPayMeeting = payMeetingService.list(meetingQuery); + if (!CollectionUtils.isEmpty(listPayMeeting)) { + throw new JeroBootException(payDraftingGroupOld.getDraftingGroupProject() + "起草组下存在会议,不可进行删除!"); + } + + removeById(id); + LambdaUpdateWrapper updatePayDraftingGroupSubItem = new LambdaUpdateWrapper<>(); + updatePayDraftingGroupSubItem.eq(PayDraftingGroupSubItem::getDraftingGroupId, id); + payDraftingGroupSubItemService.remove(updatePayDraftingGroupSubItem); + + LambdaUpdateWrapper updatePayDraftingGroupContacts = new LambdaUpdateWrapper<>(); + updatePayDraftingGroupContacts.eq(PayDraftingGroupSubItemContacts::getDraftingGroupId,id); + payDraftingGroupSubItemContactsMapper.delete(updatePayDraftingGroupContacts); + + } + + /** + * 批量删除 + * + * @param ids + */ + @Override + public void deleteByIds(List ids) { + StringBuilder sb = new StringBuilder(); + StringBuilder sb1 = new StringBuilder(); + ids.forEach(p -> { + PayDraftingGroup payDraftingGroupOld = getById(p); + if (Objects.isNull(payDraftingGroupOld)) { + throw new JeroBootException("起草组不存在!"); + } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (!rolePermissionService.getRolePermission("draftingGroup:batchDel") && !Objects.equals(payDraftingGroupOld.getPrincipalIdA(), sysUser.getId())) { + sb.append(payDraftingGroupOld.getDraftingGroupProject() + "起草组项目不可操作!
"); + } + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(PayDraftingGroupSubItem::getDraftingGroupId, p); + List listPayDraftingGroupSubItem = payDraftingGroupSubItemService.list(query); + if (!CollectionUtils.isEmpty(listPayDraftingGroupSubItem)) { + sb1.append(payDraftingGroupOld.getDraftingGroupProject() + "起草组下存在企业,不可进行删除!
"); + } +// LambdaQueryWrapper query = new LambdaQueryWrapper<>(); +// query.eq(PayDraftingGroupSubItem::getDraftingGroupId, p); +// List listPayDraftingGroupSubItem = payDraftingGroupSubItemService.list(query); +// if (!CollectionUtils.isEmpty(listPayDraftingGroupSubItem)) { +// for (PayDraftingGroupSubItem payDraftingGroupSubItem : listPayDraftingGroupSubItem) { +// if (!Objects.equals(payDraftingGroupSubItem.getCheckResult(), DraftingConstant.CHECK_REJECTION)) { +// sb1.append(payDraftingGroupOld.getDraftingGroupProject() + "起草组下存在企业,不可进行删除!
"); +// break; +// } +// } +// } + LambdaQueryWrapper meetingQuery = new LambdaQueryWrapper<>(); + meetingQuery.eq(PayMeeting::getDraftingGroupId,p); + meetingQuery.eq(PayMeeting::getMeetingType, MeetingCommon.DRAFTING_GROUP_MEETING_INT); + List listPayMeeting = payMeetingService.list(meetingQuery); + if (!CollectionUtils.isEmpty(listPayMeeting)) { + throw new JeroBootException(payDraftingGroupOld.getDraftingGroupProject() + "起草组下存在会议,不可进行删除!
"); + } + }); + if (!StringUtils.isEmpty(sb)) { + throw new JeroBootException(sb.toString()); + } + if (!StringUtils.isEmpty(sb1)) { + throw new JeroBootException(sb1.toString()); + } + removeByIds(ids); + LambdaUpdateWrapper updatePayDraftingGroupSubItem = new LambdaUpdateWrapper<>(); + updatePayDraftingGroupSubItem.in(PayDraftingGroupSubItem::getDraftingGroupId, ids); + payDraftingGroupSubItemService.remove(updatePayDraftingGroupSubItem); + LambdaUpdateWrapper updatePayDraftingGroupContacts = new LambdaUpdateWrapper<>(); + updatePayDraftingGroupContacts.in(PayDraftingGroupSubItemContacts::getDraftingGroupId,ids); + payDraftingGroupSubItemContactsMapper.delete(updatePayDraftingGroupContacts); + } + + /** + * 复制 + * + * @param payDraftingGroup + */ + @Override + public void copy(PayDraftingGroup payDraftingGroup) { + PayDraftingGroup payDraftingGroupOld = getById(payDraftingGroup.getId()); + if(Objects.isNull(payDraftingGroupOld)){ + throw new JeroBootException("起草组不存在!"); + } + if(payDraftingGroupOld.getDraftingGroupProject().length() == 50){ + throw new JeroBootException("起草组名称长度为50位,不可复制,请修改之后再复制!"); + } + String str = payDraftingGroupOld.getDraftingGroupProject() + "-副本"; + if(str.length() >= 50) { + throw new JeroBootException("起草组名称长度为50位,不可复制,请修改之后再复制!"); + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.like(PayDraftingGroup::getDraftingGroupProject,str); + List listPayDraftingGroup = list(queryWrapper); + if(!CollectionUtils.isEmpty(listPayDraftingGroup)){ + String rex = "^[0-9]*[1-9][0-9]*$"; + List list = new ArrayList<>(); + String finalStr = str; + listPayDraftingGroup.forEach(p->{ + String project = p.getDraftingGroupProject(); + if(!StringUtils.isEmpty(project) && !Objects.equals(p.getId(),payDraftingGroupOld.getId())){ + String projectNew = project.substring(finalStr.length()); + Pattern pa = Pattern.compile(rex); + Matcher m = pa.matcher(projectNew); + if (m.find()){ + list.add(Integer.parseInt(projectNew)); + } + } + }); + if(!CollectionUtils.isEmpty(list)){ + int m = list.stream().max(Comparator.comparing(Integer::intValue)).get(); + str = str + (m + 1); + } + }else{ + str = str + 1; + } + + payDraftingGroupOld.setId(null); + payDraftingGroupOld.setDraftingGroupProject(str); + payDraftingGroupOld.setCreateBy(null); + payDraftingGroupOld.setCreateTime(null); + payDraftingGroupOld.setUpdateBy(null); + payDraftingGroupOld.setUpdateTime(null); + setPayDraftingGroup(payDraftingGroupOld); + payDraftingGroupService.save(payDraftingGroupOld); + //拷贝在研项目 + QueryWrapper researchProjectQueryWrapper = new QueryWrapper<>(); + researchProjectQueryWrapper.eq("drafting_group_id",payDraftingGroup.getId()); + List list = payDraftingGroupResearchProjectService.list(researchProjectQueryWrapper); + if(ObjectUtils.isNotEmpty(list)){ + for(PayDraftingGroupResearchProject payResearchProject:list){ + payResearchProject.setDraftingGroupId(payDraftingGroupOld.getId()); + payResearchProject.setId(null); + payDraftingGroupResearchProjectService.save(payResearchProject); + //复制在研关联文件表 + if(StringUtils.isNotBlank(payResearchProject.getFiles())){ + String files = payResearchProject.getFiles(); + List filesList = Arrays.asList(files.split(",")); + for(String s:filesList){ + UUID uuid = UUID.randomUUID(); + payDraftingGroupResearchProjectService.saveFile(uuid.toString(),s,payResearchProject.getId()); + } + } + } + } + // 拷贝起草组成员 + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(PayDraftingGroupSubItem::getDraftingGroupId,payDraftingGroup.getId()); + List listPayDraftGroupSubItem = payDraftingGroupSubItemService.list(query); + if(!CollectionUtils.isEmpty(listPayDraftGroupSubItem)){ + listPayDraftGroupSubItem.forEach(p->{ + String draftingGroupSubItemId = p.getId(); + // 添加企业临时数据 + PayCompanyManagementTemporary payCompanyManagementTemporary = payCompanyManagementTemporaryService.getById(p.getChargeCompanyTemporaryId()); + if(Objects.isNull(payCompanyManagementTemporary)){ + payCompanyManagementTemporary = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(p.getChargeCompanyId()); + }else{ + payCompanyManagementTemporary.setCompanyId(payCompanyManagementTemporary.getCompanyId()); + payCompanyManagementTemporary.setId(null); + payCompanyManagementTemporaryService.save(payCompanyManagementTemporary); + } + //暂存历史联系人 + List subItemContacts = payDraftingGroupSubItemContactsMapper.getSubItemContacts(draftingGroupSubItemId); + p.setPayDraftingGroupSubItemContactsList(subItemContacts); + + p.setChargeCompanyTemporaryId(payCompanyManagementTemporary.getId()); + p.setId(null); + p.setCreateBy(null); + p.setCreateTime(null); + p.setUpdateBy(null); + p.setUpdateTime(null); + p.setDraftingGroupId(payDraftingGroupOld.getId()); + }); + payDraftingGroupSubItemService.saveBatch(listPayDraftGroupSubItem); + //拷贝起草组成员联系人 + listPayDraftGroupSubItem.forEach(p->{ + List itemContactsList = p.getPayDraftingGroupSubItemContactsList(); + for (PayDraftingGroupSubItemContacts subItemContacts : itemContactsList) { + PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(subItemContacts.getContactsTemporaryId()); + if(Objects.isNull(payContactsManagementTemporary)){ + payContactsManagementTemporary = payContactsManagementTemporaryService.insertContactsManagementTemporary(subItemContacts.getContactsId()); + }else{ + payContactsManagementTemporary.setId(null); + payContactsManagementTemporary.setCompanyId(p.getChargeCompanyTemporaryId()); + payContactsManagementTemporaryService.save(payContactsManagementTemporary); + } + + subItemContacts.setId(null); + subItemContacts.setDraftingGroupId(p.getDraftingGroupId()); + subItemContacts.setContactsTemporaryId(payContactsManagementTemporary.getId()); + subItemContacts.setDraftingGroupSubId(p.getId()); + payDraftingGroupSubItemContactsMapper.insert(subItemContacts); + } + }); + + listPayDraftGroupSubItem.forEach(p->{ + JSONObject json = new JSONObject(); + json.put("type", ProjectCommon.INFO_TYPE9); + json.put("DraftingGroupId",p.getDraftingGroupId()); + json.put("projectId",p.getId()); + json.put("path","/draftTeam/DraftTeamDetail"); + //新建项目 给企业联系人发消息 + List itemContactsList = p.getPayDraftingGroupSubItemContactsList(); + for (PayDraftingGroupSubItemContacts subItemContacts : itemContactsList) { + PayContactsManagement payContactsManagement = payContactsManagementService.getById(subItemContacts.getContactsId()); + if (!Objects.isNull(payContactsManagement)) { + PaySendContactsMessageDTO paySendContactsMessageDTO = new PaySendContactsMessageDTO(); + paySendContactsMessageDTO.setProjectName(payDraftingGroupOld.getDraftingGroupProject()); + paySendContactsMessageDTO.setProjectId(p.getId()); + paySendContactsMessageDTO.setEmail(payContactsManagement.getEmail()); + paySendContactsMessageDTO.setUserId(payDraftingGroupOld.getPrincipalIdA()); + paySendContactsMessageDTO.setPhone(payContactsManagement.getPhone()); + paySendContactsMessageDTO.setFlag(ProjectCommon.FLAG0); + paySendContactsMessageDTO.setJson(json); + contractCreateProjectSendMessageService.createProjectSendMessageToContactsService(paySendContactsMessageDTO); + } + } + }); + } + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupSubItemContactsServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupSubItemContactsServiceImpl.java new file mode 100644 index 00000000..10617e26 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupSubItemContactsServiceImpl.java @@ -0,0 +1,54 @@ +package com.jero.drafting.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.drafting.entity.PayDraftingGroupSubItemContacts; +import com.jero.drafting.mapper.PayDraftingGroupSubItemContactsMapper; +import com.jero.drafting.service.IPayDraftingGroupSubItemContactsService; +import com.jero.temporary.entity.PayContactsManagementTemporary; +import com.jero.temporary.service.IPayContactsManagementTemporaryService; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + *

+ * 起草组成员企业联系人表 服务实现类 + *

+ * + * @author sz + * @since 2024-01-02 + */ +@Service +public class PayDraftingGroupSubItemContactsServiceImpl extends ServiceImpl implements IPayDraftingGroupSubItemContactsService { + @Resource + private IPayContactsManagementTemporaryService payContactsManagementTemporaryService; + + @Override + public List getContactsInfo(String projectId){ + //1.获取成员信息 + LambdaQueryWrapper queryPayDraftingGroupSubItemContacts = new LambdaQueryWrapper<>(); + queryPayDraftingGroupSubItemContacts.eq(PayDraftingGroupSubItemContacts::getDraftingGroupId,projectId); + List listPayDraftingGroupSubItemContacts = this.list(queryPayDraftingGroupSubItemContacts); + if(CollectionUtils.isEmpty(listPayDraftingGroupSubItemContacts)){ + return listPayDraftingGroupSubItemContacts; + } + //2.根据成员id获取用户信息 + List temporaryIds = listPayDraftingGroupSubItemContacts.stream().map(PayDraftingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList()); + List contactsManagementTemporaryList = payContactsManagementTemporaryService.listByIds(temporaryIds); + Map collectMap = contactsManagementTemporaryList.stream().collect(Collectors.toMap(PayContactsManagementTemporary::getId, PayContactsManagementTemporary -> PayContactsManagementTemporary)); + for (PayDraftingGroupSubItemContacts subItemContacts : listPayDraftingGroupSubItemContacts) { + String contactsTemporaryId = subItemContacts.getContactsTemporaryId(); + PayContactsManagementTemporary payContactsManagementTemporary = collectMap.get(contactsTemporaryId); + if(!Objects.isNull(payContactsManagementTemporary)) { + subItemContacts.setCompanyName(payContactsManagementTemporary.getCompanyName()); + } + } + return listPayDraftingGroupSubItemContacts; + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupSubItemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupSubItemServiceImpl.java new file mode 100644 index 00000000..5098ed34 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/service/impl/PayDraftingGroupSubItemServiceImpl.java @@ -0,0 +1,850 @@ +package com.jero.drafting.service.impl; + +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.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.dto.PaySendContactsMessageDTO; +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.ImportExcelUtil; +import com.jero.common.util.ValidUtil; +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.drafting.common.DraftingConstant; +import com.jero.drafting.entity.PayDraftingGroup; +import com.jero.drafting.entity.PayDraftingGroupSubItem; +import com.jero.drafting.entity.PayDraftingGroupSubItemContacts; +import com.jero.drafting.mapper.PayDraftingGroupSubItemContactsMapper; +import com.jero.drafting.mapper.PayDraftingGroupSubItemMapper; +import com.jero.drafting.service.IPayDraftingGroupService; +import com.jero.drafting.service.IPayDraftingGroupSubItemContactsService; +import com.jero.drafting.service.IPayDraftingGroupSubItemService; +import com.jero.drafting.vo.CheckVo; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysUserService; +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.apache.shiro.SecurityUtils; +import org.jeecgframework.poi.excel.ExcelImportCheckUtil; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.*; +import java.util.stream.Collectors; + +/** + *

+ * 起草组成员表 服务实现类 + *

+ * + * @author sz + * @since 2024-01-02 + */ +@Service +@Transactional +public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl implements IPayDraftingGroupSubItemService { + + @Resource + private PayDraftingGroupSubItemMapper payDraftingGroupSubItemMapper; + @Resource + private IPayDraftingGroupSubItemContactsService payDraftingGroupSubItemContactsService; + @Resource + private IPayDraftingGroupService payDraftingGroupService; + @Resource + private IPayDraftingGroupSubItemService payDraftingGroupSubItemService; + @Resource + private IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService; + @Resource + private IPayContactsManagementTemporaryService payContactsManagementTemporaryService; + @Resource + private ISysUserService sysUserService; + @Resource + private IPayCompanyManagementService payCompanyManagementService; + @Resource + private IPayContactsManagementService payContactsManagementService; + @Resource + private RolePermissionService rolePermissionService; + @Resource + private PayDraftingGroupSubItemContactsMapper payDraftingGroupSubItemContactsMapper; + @Resource + private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService; + + /** + * 分页查询 + * + * @param page + * @param payDraftingGroupSubItem + * @param paymentDate + * @return + */ + @Override + public IPage queryPageList(Page page, PayDraftingGroupSubItem payDraftingGroupSubItem, String paymentDate) { + IPage payDraftingGroupSubItemIPage = payDraftingGroupSubItemMapper.queryPageList(page, payDraftingGroupSubItem, paymentDate); + List records = payDraftingGroupSubItemIPage.getRecords(); + if (!CollectionUtils.isEmpty(records)) { + // 获取企业联系人 + List listIds = records.stream().map(PayDraftingGroupSubItem::getId).collect(Collectors.toList()); + LambdaQueryWrapper queryDraftingGroupSubItemContacts = new LambdaQueryWrapper<>(); + queryDraftingGroupSubItemContacts.in(PayDraftingGroupSubItemContacts::getDraftingGroupSubId, listIds); + List payDraftingGroupSubItemContactsList = payDraftingGroupSubItemContactsService.list(queryDraftingGroupSubItemContacts); + + for (PayDraftingGroupSubItem draftingGroupSubItem : records) { + if (!CollectionUtils.isEmpty(payDraftingGroupSubItemContactsList)) { + List pdg = payDraftingGroupSubItemContactsList.stream().filter(p -> Objects.equals(p.getDraftingGroupSubId(), draftingGroupSubItem.getId())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(pdg)) { + pdg.sort(Comparator.comparing(PayDraftingGroupSubItemContacts::getOrderNum)); + draftingGroupSubItem.setContactsTemporaryNameOne(pdg.get(0).getContactsTemporaryName()); + draftingGroupSubItem.setPayDraftingGroupSubItemContactsList(pdg); + } else { + draftingGroupSubItem.setContactsTemporaryNameOne(""); + draftingGroupSubItem.setPayDraftingGroupSubItemContactsList(null); + } + } else { + draftingGroupSubItem.setContactsTemporaryNameOne(""); + draftingGroupSubItem.setPayDraftingGroupSubItemContactsList(null); + } + } + } + return payDraftingGroupSubItemIPage; + } + + /** + * 添加 + * + * @param payDraftingGroupSubItem + */ + @Override + public void addPayDraftingGroupSubItem(PayDraftingGroupSubItem payDraftingGroupSubItem) { + // 验证企业联系人list中是否有重复的联系人 + List payDraftingGroupSubItemContactsList = payDraftingGroupSubItem.getPayDraftingGroupSubItemContactsList(); + if (!CollectionUtils.isEmpty(payDraftingGroupSubItemContactsList)) { + long oldNum = payDraftingGroupSubItemContactsList.size(); + long newNum = payDraftingGroupSubItemContactsList.stream().map(PayDraftingGroupSubItemContacts::getContactsId).collect(Collectors.toList()).stream().distinct().count(); + if (oldNum != newNum) { + throw new JeroBootException("企业联系人重复"); + } + } + PayDraftingGroup payDraftingGroup = payDraftingGroupService.getById(payDraftingGroupSubItem.getDraftingGroupId()); + if (Objects.isNull(payDraftingGroup)) { + throw new JeroBootException("起草组不存在!"); + } + try { + // 编辑保存前再次校验来款项目是否存在 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PayDraftingGroupSubItem::getDraftingGroupId, payDraftingGroupSubItem.getDraftingGroupId()); + queryWrapper.eq(PayDraftingGroupSubItem::getChargeCompanyId, payDraftingGroupSubItem.getChargeCompanyId()); + queryWrapper.ne(PayDraftingGroupSubItem::getCheckResult,DraftingConstant.CHECK_REJECTION); + PayDraftingGroupSubItem payDraftingGroupSubItemNew = payDraftingGroupSubItemService.getOne(queryWrapper); + // 企业和联系人同时存在,则校验不通过 + if (!Objects.isNull(payDraftingGroupSubItemNew)) { + throw new JeroBootException("起草组成员单位已存在!"); + } + } catch (Exception e) { + throw new JeroBootException("起草组成员单位已存在!"); + } + setPayDraftingGroupSubItemAdd(payDraftingGroupSubItem); + payDraftingGroupSubItemService.save(payDraftingGroupSubItem); + List listPayDraftingGroupSubItemContactsNew = payDraftingGroupSubItem.getPayDraftingGroupSubItemContactsList(); + // 添加联系人表 + if (!CollectionUtils.isEmpty(listPayDraftingGroupSubItemContactsNew)) { + for (int i = 0; i < listPayDraftingGroupSubItemContactsNew.size(); i++) { + listPayDraftingGroupSubItemContactsNew.get(i).setOrderNum(i + 1); + listPayDraftingGroupSubItemContactsNew.get(i).setDraftingGroupId(payDraftingGroupSubItem.getDraftingGroupId()); + listPayDraftingGroupSubItemContactsNew.get(i).setDraftingGroupSubId(payDraftingGroupSubItem.getId()); + } + payDraftingGroupSubItemContactsService.saveBatch(listPayDraftingGroupSubItemContactsNew); + } + SysUser sysUserInfo = sysUserService.getById(payDraftingGroup.getPrincipalIdA()); + if (Objects.isNull(sysUserInfo)) { + throw new JeroBootException("负责人不存在!"); + } + + // 如果是审核通过的状态就发送消息 + if (Objects.equals(payDraftingGroupSubItem.getCheckResult(),DraftingConstant.CHECK_PASS)){ + sendMessage(payDraftingGroupSubItem, payDraftingGroup, listPayDraftingGroupSubItemContactsNew); + } + } + + private void sendMessage(PayDraftingGroupSubItem payDraftingGroupSubItem, PayDraftingGroup payDraftingGroup, List listPayDraftingGroupSubItemContactsNew) { + JSONObject json = new JSONObject(); + json.put("type",ProjectCommon.INFO_TYPE9); + json.put("draftGroupId", payDraftingGroupSubItem.getDraftingGroupId()); + json.put("projectId", payDraftingGroupSubItem.getId()); + json.put("path","/draftTeam/DraftTeamDetail"); + //新建项目 给企业联系人发消息 + if(!CollectionUtils.isEmpty(listPayDraftingGroupSubItemContactsNew)) { + for (PayDraftingGroupSubItemContacts subItemContacts : listPayDraftingGroupSubItemContactsNew) { + PayContactsManagement payContactsManagement = payContactsManagementService.getById(subItemContacts.getContactsId()); + if (!Objects.isNull(payContactsManagement)) { + PaySendContactsMessageDTO paySendContactsMessageDTO = new PaySendContactsMessageDTO(); + paySendContactsMessageDTO.setProjectName(payDraftingGroup.getDraftingGroupProject()); + paySendContactsMessageDTO.setProjectId(payDraftingGroupSubItem.getId()); + paySendContactsMessageDTO.setEmail(payContactsManagement.getEmail()); + paySendContactsMessageDTO.setUserId(payDraftingGroup.getPrincipalIdA()); + paySendContactsMessageDTO.setPhone(payContactsManagement.getPhone()); + paySendContactsMessageDTO.setFlag(ProjectCommon.FLAG0); + paySendContactsMessageDTO.setJson(json); + contractCreateProjectSendMessageService.createProjectSendMessageToContactsService(paySendContactsMessageDTO); + } + } + } + } + + /** + * 插入企业信息,联系人信息到临时表,更新项目记录 + * + * @param payDraftingGroupSubItem + */ + private void setPayDraftingGroupSubItemAdd(PayDraftingGroupSubItem payDraftingGroupSubItem) { + // 企业 + PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payDraftingGroupSubItem.getChargeCompanyId()); + if (Objects.isNull(chargeCompanyName)) { + throw new JeroBootException("企业名称为空!"); + } + payDraftingGroupSubItem.setChargeCompanyTemporaryId(chargeCompanyName.getId()); + payDraftingGroupSubItem.setChargeCompanyTemporaryName(chargeCompanyName.getCompanyName()); + List payDraftingGroupSubItemContactsList = payDraftingGroupSubItem.getPayDraftingGroupSubItemContactsList(); + if (!CollectionUtils.isEmpty(payDraftingGroupSubItemContactsList)) { + for (int i = 0; i < payDraftingGroupSubItemContactsList.size(); i++) { + // 企业联系人 + PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payDraftingGroupSubItemContactsList.get(i).getContactsId()); + if (Objects.isNull(contactsName)) { + throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!"); + } + payDraftingGroupSubItemContactsList.get(i).setContactsTemporaryId(contactsName.getId()); + payDraftingGroupSubItemContactsList.get(i).setContactsTemporaryName(contactsName.getName()); + } + } + } + + /** + * 根据id删除 + * + * @param id + */ + @Override + public void delete(String id) { + if (StringUtils.isBlank(id)) { + throw new JeroBootException("id不能为空!"); + } + deleteProject(id, "draftingGroupMember:delete"); + payDraftingGroupSubItemService.removeById(id); + // 删除成员企业联系人 + LambdaUpdateWrapper updatePayWorkingGroupSubItemContacts = new LambdaUpdateWrapper<>(); + updatePayWorkingGroupSubItemContacts.eq(PayDraftingGroupSubItemContacts::getDraftingGroupSubId, id); + payDraftingGroupSubItemContactsService.remove(updatePayWorkingGroupSubItemContacts); + } + + /** + * 删除联系信息 + * + * @param id + * @param perm + */ + private void deleteProject(String id, String perm) { + PayDraftingGroupSubItem payDraftingGroupSubItem = payDraftingGroupSubItemService.getById(id); + if (Objects.isNull(payDraftingGroupSubItem)) { + throw new JeroBootException("该成员不存在!"); + } + PayDraftingGroup payDraftingGroup = payDraftingGroupService.getById(payDraftingGroupSubItem.getDraftingGroupId()); + if (Objects.isNull(payDraftingGroup)) { + throw new JeroBootException("起草组不存在!"); + } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (!rolePermissionService.getRolePermission(perm) + && !Objects.equals(payDraftingGroup.getPrincipalIdA(), sysUser.getId()) + && !Objects.equals(payDraftingGroup.getPrincipalIdB(), sysUser.getId())) { + throw new JeroBootException("起草组成员不可操作!"); + } + // 删除企业联系人临时数据 + payCompanyManagementTemporaryService.removeById(payDraftingGroupSubItem.getChargeCompanyTemporaryId()); + List subItemContacts = payDraftingGroupSubItemContactsMapper.getSubItemContacts(id); + List temporaryIds = subItemContacts.stream().map(PayDraftingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList()); + payContactsManagementTemporaryService.removeByIds(temporaryIds); + } + + /** + * 批量删除 + * + * @param ids + */ + @Override + public void deleteBatch(String ids) { + if (StringUtils.isBlank(ids)) { + throw new JeroBootException("id不能为空!"); + } + String[] s = ids.split(","); + for (String s1 : s) { + if (StringUtils.isBlank(s1)) { + throw new JeroBootException("id不能为空!"); + } + deleteProject(s1, "draftingGroupMember:batchDel"); + } + payDraftingGroupSubItemService.removeByIds(Arrays.asList(ids.split(","))); + // 删除成员企业联系人 + LambdaUpdateWrapper updatePayWorkingGroupSubItemContacts = new LambdaUpdateWrapper<>(); + updatePayWorkingGroupSubItemContacts.in(PayDraftingGroupSubItemContacts::getDraftingGroupSubId, Arrays.asList(ids.split(","))); + payDraftingGroupSubItemContactsService.remove(updatePayWorkingGroupSubItemContacts); + } + + /** + * 编辑 + * + * @param payDraftingGroupSubItem + */ + @Override + public void editPayWorkingGroupSubItem(PayDraftingGroupSubItem payDraftingGroupSubItem) { + String draftingGroupSubItemId = payDraftingGroupSubItem.getId(); + PayDraftingGroupSubItem payDraftingGroupSubItemOld = payDraftingGroupSubItemService.getById(draftingGroupSubItemId); + if (Objects.isNull(payDraftingGroupSubItemOld)) { + throw new JeroBootException("项目不存在!"); + } + PayDraftingGroup payDraftingGroup = payDraftingGroupService.getById(payDraftingGroupSubItemOld.getDraftingGroupId()); + if (Objects.isNull(payDraftingGroup)) { + throw new JeroBootException("起草组不存在!"); + } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (!rolePermissionService.getRolePermission("draftingGroupMember:edit") + && !Objects.equals(payDraftingGroup.getPrincipalIdA(), sysUser.getId()) + && !Objects.equals(payDraftingGroup.getPrincipalIdB(), sysUser.getId())) { + throw new JeroBootException("起草组成员不可操作!"); + } + try { + // 编辑保存前再次校验来款项目是否存在 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PayDraftingGroupSubItem::getDraftingGroupId, payDraftingGroupSubItem.getDraftingGroupId()); + queryWrapper.eq(PayDraftingGroupSubItem::getChargeCompanyId, payDraftingGroupSubItem.getChargeCompanyId()); + PayDraftingGroupSubItem payDraftingGroupSubItemNew = payDraftingGroupSubItemService.getOne(queryWrapper); + // 企业和联系人同时存在,则校验不通过 + if (!Objects.isNull(payDraftingGroupSubItemNew) && !Objects.equals(payDraftingGroupSubItemNew.getId(), draftingGroupSubItemId)) { + throw new JeroBootException("起草组成员单位已存在!"); + } + } catch (Exception e) { + throw new JeroBootException("起草组成员单位已存在!"); + } + LambdaQueryWrapper queryPayDraftingGroupSubItemContacts = new LambdaQueryWrapper<>(); + queryPayDraftingGroupSubItemContacts.eq(PayDraftingGroupSubItemContacts::getDraftingGroupSubId, payDraftingGroupSubItemOld.getId()); + List listPayDraftingGroupSubItemContacts = payDraftingGroupSubItemContactsService.list(queryPayDraftingGroupSubItemContacts); + if (!CollectionUtils.isEmpty(listPayDraftingGroupSubItemContacts)) { + payDraftingGroupSubItemOld.setPayDraftingGroupSubItemContactsList(listPayDraftingGroupSubItemContacts); + } + setPayDraftingGroupSubItemEdit(payDraftingGroupSubItem, payDraftingGroupSubItemOld); + List listPayDraftingGroupSubItemContactsNew = payDraftingGroupSubItem.getPayDraftingGroupSubItemContactsList(); + // 添加联系人表 + if (!CollectionUtils.isEmpty(listPayDraftingGroupSubItemContactsNew)) { + // 先删除之前的企业联系人 + LambdaUpdateWrapper updatePayWorkingGroupSubItemContacts = new LambdaUpdateWrapper<>(); + updatePayWorkingGroupSubItemContacts.eq(PayDraftingGroupSubItemContacts::getDraftingGroupSubId, draftingGroupSubItemId); + payDraftingGroupSubItemContactsService.remove(updatePayWorkingGroupSubItemContacts); + // 添加新的企业联系人 + for (int i = 0; i < listPayDraftingGroupSubItemContactsNew.size(); i++) { + listPayDraftingGroupSubItemContactsNew.get(i).setOrderNum(i + 1); + listPayDraftingGroupSubItemContactsNew.get(i).setDraftingGroupSubId(draftingGroupSubItemId); + listPayDraftingGroupSubItemContactsNew.get(i).setDraftingGroupId(payDraftingGroupSubItem.getDraftingGroupId()); + } + payDraftingGroupSubItemContactsService.saveBatch(listPayDraftingGroupSubItemContactsNew); + } + payDraftingGroupSubItemService.updateById(payDraftingGroupSubItem); + } + + /** + * 编辑 + * + * @param payDraftingGroupSubItem + */ + @Override + public void editPayWorkingGroupSubItemByCompany(PayDraftingGroupSubItem payDraftingGroupSubItem) { + String draftingGroupSubItemId = payDraftingGroupSubItem.getId(); + PayDraftingGroupSubItem payDraftingGroupSubItemOld = payDraftingGroupSubItemService.getById(draftingGroupSubItemId); + if (Objects.isNull(payDraftingGroupSubItemOld)) { + throw new JeroBootException("项目不存在!"); + } + PayDraftingGroup payDraftingGroup = payDraftingGroupService.getById(payDraftingGroupSubItemOld.getDraftingGroupId()); + if (Objects.isNull(payDraftingGroup)) { + throw new JeroBootException("起草组不存在!"); + } + + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + // 判断当前登录人是否为企业联系人 + LambdaQueryWrapper queryDraftingGroupSubItemContacts = new LambdaQueryWrapper<>(); + queryDraftingGroupSubItemContacts.eq(PayDraftingGroupSubItemContacts::getDraftingGroupSubId, draftingGroupSubItemId); + queryDraftingGroupSubItemContacts.eq(PayDraftingGroupSubItemContacts::getContactsId,sysUser.getId()); + long l = payDraftingGroupSubItemContactsService.count(queryDraftingGroupSubItemContacts); + if(l == 0){ + throw new JeroBootException("非起草组成员不可操作!"); + } + + try { + // 编辑保存前再次校验来款项目是否存在 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PayDraftingGroupSubItem::getDraftingGroupId, payDraftingGroupSubItem.getDraftingGroupId()); + queryWrapper.eq(PayDraftingGroupSubItem::getChargeCompanyId, payDraftingGroupSubItem.getChargeCompanyId()); + PayDraftingGroupSubItem payDraftingGroupSubItemNew = payDraftingGroupSubItemService.getOne(queryWrapper); + // 企业和联系人同时存在,则校验不通过 + if (!Objects.isNull(payDraftingGroupSubItemNew) && !Objects.equals(payDraftingGroupSubItemNew.getId(), draftingGroupSubItemId)) { + throw new JeroBootException("起草组成员单位已存在!"); + } + } catch (Exception e) { + throw new JeroBootException("起草组成员单位已存在!"); + } + LambdaQueryWrapper queryPayDraftingGroupSubItemContacts = new LambdaQueryWrapper<>(); + queryPayDraftingGroupSubItemContacts.eq(PayDraftingGroupSubItemContacts::getDraftingGroupSubId, payDraftingGroupSubItemOld.getId()); + List listPayDraftingGroupSubItemContacts = payDraftingGroupSubItemContactsService.list(queryPayDraftingGroupSubItemContacts); + if (!CollectionUtils.isEmpty(listPayDraftingGroupSubItemContacts)) { + payDraftingGroupSubItemOld.setPayDraftingGroupSubItemContactsList(listPayDraftingGroupSubItemContacts); + } + setPayDraftingGroupSubItemEdit(payDraftingGroupSubItem, payDraftingGroupSubItemOld); + List listPayDraftingGroupSubItemContactsNew = payDraftingGroupSubItem.getPayDraftingGroupSubItemContactsList(); + // 添加联系人表 + if (!CollectionUtils.isEmpty(listPayDraftingGroupSubItemContactsNew)) { + // 先删除之前的企业联系人 + LambdaUpdateWrapper updatePayWorkingGroupSubItemContacts = new LambdaUpdateWrapper<>(); + updatePayWorkingGroupSubItemContacts.eq(PayDraftingGroupSubItemContacts::getDraftingGroupSubId, draftingGroupSubItemId); + payDraftingGroupSubItemContactsService.remove(updatePayWorkingGroupSubItemContacts); + // 添加新的企业联系人 + for (int i = 0; i < listPayDraftingGroupSubItemContactsNew.size(); i++) { + listPayDraftingGroupSubItemContactsNew.get(i).setOrderNum(i + 1); + listPayDraftingGroupSubItemContactsNew.get(i).setDraftingGroupSubId(draftingGroupSubItemId); + listPayDraftingGroupSubItemContactsNew.get(i).setDraftingGroupId(payDraftingGroupSubItem.getDraftingGroupId()); + } + payDraftingGroupSubItemContactsService.saveBatch(listPayDraftingGroupSubItemContactsNew); + } + payDraftingGroupSubItemService.updateById(payDraftingGroupSubItem); + } + + /** + * 插入企业信息,联系人信息到临时表,更新项目记录 + * + * @param payDraftingGroupSubItem + * @param payDraftingGroupSubItemOld + */ + private void setPayDraftingGroupSubItemEdit(PayDraftingGroupSubItem payDraftingGroupSubItem, PayDraftingGroupSubItem payDraftingGroupSubItemOld) { + if (!Objects.equals(payDraftingGroupSubItemOld.getChargeCompanyTemporaryId(), payDraftingGroupSubItem.getChargeCompanyId())) { + // 企业信息 + PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payDraftingGroupSubItem.getChargeCompanyId()); + if (Objects.isNull(chargeCompanyName)) { + throw new JeroBootException("企业名称为空!"); + } + payDraftingGroupSubItem.setChargeCompanyTemporaryId(chargeCompanyName.getId()); + payDraftingGroupSubItem.setChargeCompanyTemporaryName(chargeCompanyName.getCompanyName()); + payCompanyManagementTemporaryService.removeById(payDraftingGroupSubItemOld.getChargeCompanyTemporaryId()); + } else { + payDraftingGroupSubItem.setChargeCompanyId(payDraftingGroupSubItemOld.getChargeCompanyId()); + } + // 企业联系人信息 + List payDraftingGroupSubItemContactsList = payDraftingGroupSubItem.getPayDraftingGroupSubItemContactsList(); + if (!CollectionUtils.isEmpty(payDraftingGroupSubItemContactsList)) { + // 删除临时表历史记录 + if (!CollectionUtils.isEmpty(payDraftingGroupSubItemOld.getPayDraftingGroupSubItemContactsList())) { + List list = payDraftingGroupSubItemOld.getPayDraftingGroupSubItemContactsList().stream().map(PayDraftingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList()); + payContactsManagementTemporaryService.removeByIds(list); + } + // 删除联系人记录 + LambdaUpdateWrapper updatePayDraftingGroupSubItemContacts = new LambdaUpdateWrapper<>(); + updatePayDraftingGroupSubItemContacts.eq(PayDraftingGroupSubItemContacts::getDraftingGroupSubId, payDraftingGroupSubItem.getId()); + payDraftingGroupSubItemContactsService.remove(updatePayDraftingGroupSubItemContacts); + // 新增 + for (int i = 0; i < payDraftingGroupSubItemContactsList.size(); i++) { + // 企业联系人 + PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payDraftingGroupSubItemContactsList.get(i).getContactsId()); + if (Objects.isNull(contactsName)) { + throw new JeroBootException("企业联系人" + (i + 1) + "名称为空!"); + } + payDraftingGroupSubItemContactsList.get(i).setContactsTemporaryId(contactsName.getId()); + payDraftingGroupSubItemContactsList.get(i).setContactsTemporaryName(contactsName.getName()); + } + } + } + + /** + * excel导入 + * + * @param request + */ + @Override + public void importExcel(HttpServletRequest request) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + String draftGroupId; + try { + draftGroupId = multipartRequest.getParameter("draftGroupId"); + }catch (Exception e){ + log.error("获取起草组id异常",e); + throw new JeroBootException("起草组id不能为空 !"); + } + if(StringUtils.isBlank(draftGroupId)){ + throw new JeroBootException("起草组id不能为空 !"); + } + StringBuilder msg = new StringBuilder(); + Map fileMap = multipartRequest.getFileMap(); + for (Map.Entry entity : fileMap.entrySet()) { + MultipartFile file = entity.getValue();// 获取上传文件对象 + // 校验文件是否为excel + if(!ImportExcelUtil.checkExcelFile(file)){ + throw new JeroBootException("请导入excel文件!"); + } + ImportParams params = new ImportParams(); + params.setTitleRows(1); + params.setHeadRows(1); + try { + Boolean t = ExcelImportCheckUtil.check(file.getInputStream(), PayDraftingGroupSubItem.class, params); + if(!t){ + throw new JeroBootException("文件格式有误,请下载模板后上传!"); + } + } catch (Exception e) { + e.printStackTrace(); + throw new JeroBootException("文件格式有误,请下载模板后上传!"); + } + try { + List list = ExcelImportUtil.importExcel(file.getInputStream(), PayDraftingGroupSubItem.class, params); + if(!CollectionUtils.isEmpty(list)){ + // 校验重复成员的集合 + List listCompanyAndContacts = new ArrayList<>(); + // 获取excel中的企业名称 + List listCompanyName = list.stream().map(PayDraftingGroupSubItem::getChargeCompanyTemporaryName).collect(Collectors.toList()); + // 获取excel企业信息 + LambdaQueryWrapper companyWrapper = new LambdaQueryWrapper<>(); + companyWrapper.in(PayCompanyManagement::getCompanyName,listCompanyName); + List listCompanyInfo = payCompanyManagementService.list(companyWrapper); + List listContactsName = new ArrayList<>(); + // 导入的数据默认为审核通过状态 + for (PayDraftingGroupSubItem payDraftingGroupSubItem : list) { + payDraftingGroupSubItem.setCheckResult(DraftingConstant.CHECK_PASS); + } + // 获取excel中联系人1名称 + List listContactsName1 = list.stream().map(PayDraftingGroupSubItem::getContactsNameOne).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listContactsName1)){ + listContactsName.addAll(listContactsName1); + } + // 获取excel中联系人2名称 + List listContactsName2 = list.stream().map(PayDraftingGroupSubItem::getContactsNameTwo).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listContactsName2)){ + listContactsName.addAll(listContactsName2); + } + // 获取excel中联系人3名称 + List listContactsName3 = list.stream().map(PayDraftingGroupSubItem::getContactsNameThree).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listContactsName3)){ + listContactsName.addAll(listContactsName3); + } + // 获取excel中联系人4名称 + List listContactsName4 = list.stream().map(PayDraftingGroupSubItem::getContactsNameFour).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listContactsName4)){ + listContactsName.addAll(listContactsName4); + } + // 获取excel中联系人5名称 + List listContactsName5 = list.stream().map(PayDraftingGroupSubItem::getContactsNameFive).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listContactsName5)){ + listContactsName.addAll(listContactsName5); + } + // 获取excel中联系人6名称 + List listContactsName6 = list.stream().map(PayDraftingGroupSubItem::getContactsNameSix).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listContactsName6)){ + listContactsName.addAll(listContactsName6); + } + // 获取excel中联系人7名称 + List listContactsName7 = list.stream().map(PayDraftingGroupSubItem::getContactsNameSeven).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listContactsName7)){ + listContactsName.addAll(listContactsName7); + } + // 获取excel中联系人8名称 + List listContactsName8 = list.stream().map(PayDraftingGroupSubItem::getContactsNameEight).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listContactsName8)){ + listContactsName.addAll(listContactsName8); + } + // 获取excel中联系人9名称 + List listContactsName9 = list.stream().map(PayDraftingGroupSubItem::getContactsNameNine).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listContactsName9)){ + listContactsName.addAll(listContactsName9); + } + // 获取excel中联系人10名称 + List listContactsName10 = list.stream().map(PayDraftingGroupSubItem::getContactsNameTen).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(listContactsName10)){ + listContactsName.addAll(listContactsName10); + } + // 获取excel联系人信息 + LambdaQueryWrapper contactsWrapper = new LambdaQueryWrapper<>(); + contactsWrapper.in(PayContactsManagement::getName,listContactsName); + List listContactsInfo = payContactsManagementService.list(contactsWrapper); + + // 获取起草组信息 + PayDraftingGroup payDraftingGroup = payDraftingGroupService.getById(draftGroupId); + if(Objects.isNull(payDraftingGroup)){ + msg.append("起草组不存在 !"); + } + if(StringUtils.isBlank(msg)) { + // 获取起草组成员 + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(PayDraftingGroupSubItem::getDraftingGroupId, draftGroupId); + List listData = payDraftingGroupSubItemService.list(query); + list.forEach(p -> { + p.setDraftingGroupId(draftGroupId); + int count = list.indexOf(p); + // 校验企业名称 + List listCompany = new ArrayList<>(); + if (StringUtils.isBlank(p.getChargeCompanyTemporaryName())) { + msg.append("第").append(count + 3).append("行:企业名称不能为空,请修改。
"); + } else { + // 通过企业名称获取企业id + listCompany = listCompanyInfo.stream().filter(item -> + Objects.equals(item.getCompanyName(), p.getChargeCompanyTemporaryName())).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(listCompany)) { + msg.append("第").append(count + 3).append("行:企业名称不存在,请修改。
"); + } else { + p.setChargeCompanyId(listCompany.get(0).getId()); + } + } + // 校验起草组成员单位是否已存在(是否重复) + if (!StringUtils.isBlank(p.getChargeCompanyId())) { + List listDateNew = listData.stream().filter(item -> Objects.equals(p.getChargeCompanyId(), item.getChargeCompanyId())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(listDateNew)) { + msg.append("第").append(count + 3).append("行:工作组成员单位已存在,请修改。
"); + } + } + // 校验重复 + List listPayDraftingGroupSubItemContacts = checkRepeat(p,msg,count,listCompany,listContactsInfo); + p.setPayDraftingGroupSubItemContactsList(listPayDraftingGroupSubItemContacts); + // 校验成员唯一性 + List listCompanyAndContactsNew = listCompanyAndContacts.stream().filter(item -> Objects.equals(p.getChargeCompanyTemporaryName(), item.getChargeCompanyTemporaryName())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(listCompanyAndContactsNew)) { + msg.append("第").append(count + 3).append("行:工作组成员单位重复出现,请修改。
"); + } + listCompanyAndContacts.add(p); + // 校验字段值 + StringBuilder s = ValidUtil.validateExcel(p, (count + 3)); + if (!StringUtils.isBlank(s)) { + msg.append(s); + } + }); + if (StringUtils.isBlank(msg)) { + // 拷贝企业,联系人 + list.forEach(this::setPayDraftingGroupSubItemAdd); + // 更新数据 + payDraftingGroupSubItemService.saveBatch(list); + list.forEach(p->{ + // 处理联系人的备注字段 + List remarks = dealRemarkField(p); + String draftingGroupSubItemId = p.getId(); + List listPayDraftingGroupSubItemContacts = p.getPayDraftingGroupSubItemContactsList(); + if(!CollectionUtils.isEmpty(listPayDraftingGroupSubItemContacts)){ + for (int i = 0; i < listPayDraftingGroupSubItemContacts.size(); i++) { + listPayDraftingGroupSubItemContacts.get(i).setDraftingGroupId(p.getDraftingGroupId()); + listPayDraftingGroupSubItemContacts.get(i).setDraftingGroupSubId(draftingGroupSubItemId); + listPayDraftingGroupSubItemContacts.get(i).setOrderNum(i + 1); + listPayDraftingGroupSubItemContacts.get(i).setRemarks(remarks.get(i)); + + } + payDraftingGroupSubItemContactsService.saveBatch(listPayDraftingGroupSubItemContacts); + } + }); + } + } + } + }catch (Exception e){ + log.error(e.getMessage(),e); + throw new JeroBootException("文件导入失败!"); + } finally { + try { + file.getInputStream().close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + if(!StringUtils.isBlank(msg)){ + throw new JeroBootException(msg.toString()); + } + } + } + + // 处理联系人的remark字段 + public List dealRemarkField(PayDraftingGroupSubItem p) { + ArrayList arrayList = new ArrayList<>(); + arrayList.add(p.getRemarksOne()); + arrayList.add(p.getRemarksTwo()); + arrayList.add(p.getRemarksThree()); + arrayList.add(p.getRemarksFour()); + arrayList.add(p.getRemarksFive()); + arrayList.add(p.getRemarksSix()); + arrayList.add(p.getRemarksSeven()); + arrayList.add(p.getRemarksEight()); + arrayList.add(p.getRemarksNine()); + arrayList.add(p.getRemarksTen()); + return arrayList; + } + + /** + * 验证重复 + * @param p + * @param msg + * @param count 行数 + * @param listCompany 企业集合 + * @param listContactsInfo 联系人集合 + * @return + */ + private List checkRepeat(PayDraftingGroupSubItem p, StringBuilder msg, int count, List listCompany, List listContactsInfo) { + List list = new ArrayList<>(); + HashMap map = new HashMap<>(); + if(!StringUtils.isBlank(p.getContactsNameOne())){ + PayDraftingGroupSubItemContacts payDraftingGroupSubItemContacts = setContactsId(msg,p.getContactsNameOne(),1,count,listCompany,listContactsInfo,map); + list.add(payDraftingGroupSubItemContacts); + }else{ + msg.append("第").append(count + 3).append("行:企业联系人1不能为空,请修改。
"); + } + + if(!StringUtils.isBlank(p.getContactsNameTwo())){ + PayDraftingGroupSubItemContacts payDraftingGroupSubItemContacts = setContactsId(msg,p.getContactsNameTwo(),2,count,listCompany,listContactsInfo,map); + list.add(payDraftingGroupSubItemContacts); + } + if(!StringUtils.isBlank(p.getContactsNameThree())){ + PayDraftingGroupSubItemContacts payDraftingGroupSubItemContacts = setContactsId(msg,p.getContactsNameThree(),3,count,listCompany,listContactsInfo,map); + list.add(payDraftingGroupSubItemContacts); + } + if(!StringUtils.isBlank(p.getContactsNameFour())){ + PayDraftingGroupSubItemContacts payDraftingGroupSubItemContacts = setContactsId(msg,p.getContactsNameFour(),4,count,listCompany,listContactsInfo,map); + list.add(payDraftingGroupSubItemContacts); + } + if(!StringUtils.isBlank(p.getContactsNameFive())){ + PayDraftingGroupSubItemContacts payDraftingGroupSubItemContacts = setContactsId(msg,p.getContactsNameFive(),5,count,listCompany,listContactsInfo,map); + list.add(payDraftingGroupSubItemContacts); + } + if(!StringUtils.isBlank(p.getContactsNameSix())){ + PayDraftingGroupSubItemContacts payDraftingGroupSubItemContacts = setContactsId(msg,p.getContactsNameSix(),6,count,listCompany,listContactsInfo,map); + list.add(payDraftingGroupSubItemContacts); + } + if(!StringUtils.isBlank(p.getContactsNameSeven())){ + PayDraftingGroupSubItemContacts payDraftingGroupSubItemContacts = setContactsId(msg,p.getContactsNameSeven(),7,count,listCompany,listContactsInfo,map); + list.add(payDraftingGroupSubItemContacts); + } + if(!StringUtils.isBlank(p.getContactsNameEight())){ + PayDraftingGroupSubItemContacts payDraftingGroupSubItemContacts = setContactsId(msg,p.getContactsNameEight(),8,count,listCompany,listContactsInfo,map); + list.add(payDraftingGroupSubItemContacts); + } + if(!StringUtils.isBlank(p.getContactsNameNine())){ + PayDraftingGroupSubItemContacts payDraftingGroupSubItemContacts = setContactsId(msg,p.getContactsNameNine(),9,count,listCompany,listContactsInfo,map); + list.add(payDraftingGroupSubItemContacts); + } + if(!StringUtils.isBlank(p.getContactsNameTen())){ + PayDraftingGroupSubItemContacts payDraftingGroupSubItemContacts = setContactsId(msg,p.getContactsNameTen(),10,count,listCompany,listContactsInfo,map); + list.add(payDraftingGroupSubItemContacts); + } + return list; + } + + private PayDraftingGroupSubItemContacts setContactsId(StringBuilder msg,String name,int num,int count,List listCompany,List listContactsInfo,HashMap map){ + PayDraftingGroupSubItemContacts payDraftingGroupSubItemContacts = new PayDraftingGroupSubItemContacts(); + if(map.containsKey(name)){ + int c = map.get(name); + msg.append("第").append(count + 3).append("行:企业联系人").append(c).append("与企业联系人").append(num).append("重复,请修改。
"); + }else{ + map.put(name,num); + } + if (!CollectionUtils.isEmpty(listCompany)) { + // 通过联系人获取联系人id + List listContacts = listContactsInfo.stream().filter(item -> + Objects.equals(item.getName(), name) + && Objects.equals(item.getCompanyId(), listCompany.get(0).getId())).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(listContacts)) { + msg.append("第").append(count + 3).append("行:该企业下不存在企业联系人").append(num).append(",请修改。
"); + } else { + payDraftingGroupSubItemContacts.setContactsId(listContacts.get(0).getId()); + } + } + return payDraftingGroupSubItemContacts; + } + + /** + * 起草组成员-发布提醒列表查询 + * + * @param page + * @param payDraftingGroupSubItem + * @return + */ + @Override + public IPage publishReminderList(Page page, PayDraftingGroupSubItem payDraftingGroupSubItem) { + return payDraftingGroupSubItemMapper.publishReminderList(page,payDraftingGroupSubItem); + } + + /** + * 审核报名信息 + * + * @param checkVO + */ + @Override + public void checkRegister(CheckVo checkVO) { + String payDraftingGroupSubItemId = checkVO.getId(); + String checkRemark = checkVO.getCheckRemark(); + Integer checkResult = checkVO.getCheckResult(); + PayDraftingGroupSubItem payDraftingGroupSubItem = payDraftingGroupSubItemService.getById(payDraftingGroupSubItemId); + PayDraftingGroup payDraftingGroup = payDraftingGroupService.getById(payDraftingGroupSubItem.getDraftingGroupId()); + //判断是否有权限审核 + verificationGuests(payDraftingGroupSubItem); + if(Objects.equals(checkVO.getCheckResult(),DraftingConstant.CHECK_PASS)) { + // 审核通过,将状态改为2 发送消息 + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(PayDraftingGroupSubItem::getId,payDraftingGroupSubItemId); + updateWrapper.set(StringUtils.isNotBlank(checkRemark),PayDraftingGroupSubItem::getCheckRemark,checkRemark); + updateWrapper.set(!Objects.isNull(checkResult),PayDraftingGroupSubItem::getCheckResult,checkResult); + payDraftingGroupSubItemService.update(updateWrapper); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PayDraftingGroupSubItemContacts::getDraftingGroupId,payDraftingGroupSubItem.getDraftingGroupId()); + queryWrapper.eq(PayDraftingGroupSubItemContacts::getDraftingGroupSubId,payDraftingGroupSubItem.getId()); + List payDraftingGroupSubItemContactsList = payDraftingGroupSubItemContactsService.list(queryWrapper); + sendMessage(payDraftingGroupSubItem,payDraftingGroup,payDraftingGroupSubItemContactsList); + } + if(Objects.equals(checkVO.getCheckResult(),DraftingConstant.CHECK_REJECTION)) { + // 直接将数据删除 + payDraftingGroupSubItemService.removeById(payDraftingGroupSubItemId); + // 删除对应的联系表 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PayDraftingGroupSubItemContacts::getDraftingGroupId,payDraftingGroupSubItem.getDraftingGroupId()); + queryWrapper.eq(PayDraftingGroupSubItemContacts::getDraftingGroupSubId,payDraftingGroupSubItem.getId()); + payDraftingGroupSubItemContactsService.remove(queryWrapper); + } + } + + /** + * 判断是否有权限审核 + * + * @author lijiarao + * @date 2021/9/28 + */ + private void verificationGuests(PayDraftingGroupSubItem payDraftingGroupSubItem) { + //判断是否有权限审核 + String draftingGroupId = payDraftingGroupSubItem.getDraftingGroupId(); + PayDraftingGroup payDraftingGroup = payDraftingGroupService.getById(draftingGroupId); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String sysUserId = sysUser.getId(); + if (!rolePermissionService.getRolePermission("draftingGroupMember:check") && + !Objects.equals(payDraftingGroup.getPrincipalIdA(),sysUserId) && + !Objects.equals(payDraftingGroup.getPrincipalIdB(),sysUserId)) { + throw new JeroBootException("没有审核的权限"); + } + } + + @Override + public IPage queryCompanyPageList(Page page, PayDraftingGroupSubItem payWorkingGroupSubItem, List listNeedInvoice, List listProjectIds) { + return payDraftingGroupSubItemMapper.queryCompanyPageList( page, payWorkingGroupSubItem,listNeedInvoice, listProjectIds); + } + + @Override + public IPage queryCompanyPageListByCompanyManager(Page page, PayDraftingGroupSubItem payWorkingGroupSubItem, List listNeedInvoice, String companyId) { + return payDraftingGroupSubItemMapper.queryCompanyPageListByCompanyManager( page, payWorkingGroupSubItem,listNeedInvoice,companyId); + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/vo/CheckVo.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/vo/CheckVo.java new file mode 100644 index 00000000..2569a88d --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/vo/CheckVo.java @@ -0,0 +1,19 @@ +package com.jero.drafting.vo; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class CheckVo { + + @ApiModelProperty("审核结果 1:待审核 2:已通过 3:拒绝") + private Integer checkResult; + + @ApiModelProperty("审核说明") + private String checkRemark; + + @ApiModelProperty("起草组id") + private String id; +} + diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/vo/PayDraftingGroupSubItemExcel.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/vo/PayDraftingGroupSubItemExcel.java new file mode 100644 index 00000000..4a98ef63 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/vo/PayDraftingGroupSubItemExcel.java @@ -0,0 +1,253 @@ +package com.jero.drafting.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.math.BigDecimal; + + +@Data +public class PayDraftingGroupSubItemExcel implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 临时成员单位 + */ + @Excel(name = "成员单位", width = 15) + @ApiModelProperty(value = "临时成员单位") + private String chargeCompanyTemporaryName; + + /** + * 备注 + */ + @Excel(name = "备注", width = 15) + @ApiModelProperty(value = "备注") + private String remarks; + /** + * 企业联系人1名称 + */ + @Excel(name = "企业联系人1", width = 15) + @ApiModelProperty(value = "企业联系人1名称") + private String contactsNameOne; + + /** + * 企业联系人1手机号 + */ + @Excel(name = "企业联系人1手机号", width = 17) + private String contactsPhoneOne; + + /** + * 企业联系人1邮箱 + */ + @Excel(name = "企业联系人1邮箱", width = 15) + private String contactsEmailOne; + + /** + * 联系人1备注 + */ + @Excel(name = "联系人1备注", width = 15) + @ApiModelProperty(value = "联系人1备注") + private String remarksOne; + /** + * 企业联系人2名称 + */ + @Excel(name = "企业联系人2", width = 15) + @ApiModelProperty(value = "企业联系人2名称") + private String contactsNameTwo; + /** + * 企业联系人2手机号 + */ + @Excel(name = "企业联系人2手机号", width = 17) + private String contactsPhoneTwo; + /** + * 企业联系人2邮箱 + */ + @Excel(name = "企业联系人2邮箱", width = 15) + private String contactsEmailTwo; + /** + * 联系人2备注 + */ + @Excel(name = "联系人2备注", width = 15) + @ApiModelProperty(value = "联系人2备注") + private String remarksTwo; + /** + * 企业联系人3名称 + */ + @Excel(name = "企业联系人3", width = 15) + @ApiModelProperty(value = "企业联系人3名称") + private String contactsNameThree; + /** + * 企业联系人3手机号 + */ + @Excel(name = "企业联系人3手机号", width = 17) + private String contactsPhoneThree; + /** + * 企业联系人3邮箱 + */ + @Excel(name = "企业联系人3邮箱", width = 15) + private String contactsEmailThree; + /** + * 联系人3备注 + */ + @Excel(name = "联系人3备注", width = 15) + @ApiModelProperty(value = "联系人3备注") + private String remarksThree; + /** + * 企业联系人4名称 + */ + @Excel(name = "企业联系人4", width = 15) + @ApiModelProperty(value = "企业联系人4名称") + private String contactsNameFour; + /** + * 企业联系人4手机号 + */ + @Excel(name = "企业联系人4手机号", width = 17) + private String contactsPhoneFour; + /** + * 企业联系人4邮箱 + */ + @Excel(name = "企业联系人4邮箱", width = 15) + private String contactsEmailFour; + /** + * 联系人4备注 + */ + @Excel(name = "联系人4备注", width = 15) + @ApiModelProperty(value = "联系人4备注") + private String remarksFour; + /** + * 企业联系人5名称 + */ + @Excel(name = "企业联系人5", width = 15) + @ApiModelProperty(value = "企业联系人5名称") + private String contactsNameFive; + /** + * 企业联系人5手机号 + */ + @Excel(name = "企业联系人5手机号", width = 17) + private String contactsPhoneFive; + /** + * 企业联系人5邮箱 + */ + @Excel(name = "企业联系人5邮箱", width = 15) + private String contactsEmailFive; + /** + * 联系人5备注 + */ + @Excel(name = "联系人5备注", width = 15) + @ApiModelProperty(value = "联系人5备注") + private String remarksFive; + /** + * 企业联系人6名称 + */ + @Excel(name = "企业联系人6", width = 15) + @ApiModelProperty(value = "企业联系人6名称") + private String contactsNameSix; + /** + * 企业联系人6手机号 + */ + @Excel(name = "企业联系人6手机号", width = 17) + private String contactsPhoneSix; + /** + * 企业联系人6邮箱 + */ + @Excel(name = "企业联系人6邮箱", width = 15) + private String contactsEmailSix; + /** + * 联系人6备注 + */ + @Excel(name = "联系人6备注", width = 15) + @ApiModelProperty(value = "联系人6备注") + private String remarksSix; + /** + * 企业联系人7名称 + */ + @Excel(name = "企业联系人7", width = 15) + @ApiModelProperty(value = "企业联系人7名称") + private String contactsNameSeven; + /** + * 企业联系人7手机号 + */ + @Excel(name = "企业联系人7手机号", width = 17) + private String contactsPhoneSeven; + /** + * 企业联系人7邮箱 + */ + @Excel(name = "企业联系人7邮箱", width = 15) + private String contactsEmailSeven; + /** + * 联系人7备注 + */ + @Excel(name = "联系人7备注", width = 15) + @ApiModelProperty(value = "联系人7备注") + private String remarksSeven; + /** + * 企业联系人8名称 + */ + @Excel(name = "企业联系人8", width = 15) + @ApiModelProperty(value = "企业联系人8名称") + private String contactsNameEight; + /** + * 企业联系人8手机号 + */ + @Excel(name = "企业联系人8手机号", width = 17) + private String contactsPhoneEight; + /** + * 企业联系人8邮箱 + */ + @Excel(name = "企业联系人8邮箱", width = 15) + private String contactsEmailEight; + /** + * 联系人8备注 + */ + @Excel(name = "联系人8备注", width = 15) + @ApiModelProperty(value = "联系人8备注") + private String remarksEight; + /** + * 企业联系人9名称 + */ + @Excel(name = "企业联系人9", width = 15) + @ApiModelProperty(value = "企业联系人9名称") + private String contactsNameNine; + /** + * 企业联系人9手机号 + */ + @Excel(name = "企业联系人9手机号", width = 17) + private String contactsPhoneNine; + /** + * 企业联系人9邮箱 + */ + @Excel(name = "企业联系人9邮箱", width = 15) + private String contactsEmailNine; + /** + * 联系人9备注 + */ + @Excel(name = "联系人9备注", width = 15) + @ApiModelProperty(value = "联系人9备注") + private String remarksNine; + /** + * 企业联系人10名称 + */ + @Excel(name = "企业联系人10", width = 15) + @ApiModelProperty(value = "企业联系人10名称") + private String contactsNameTen; + /** + * 企业联系人10手机号 + */ + @Excel(name = "企业联系人10手机号", width = 17) + private String contactsPhoneTen; + /** + * 企业联系人10邮箱 + */ + @Excel(name = "企业联系人10邮箱", width = 15) + private String contactsEmailTen; + /** + * 联系人10备注 + */ + @Excel(name = "联系人10备注", width = 15) + @ApiModelProperty(value = "联系人10备注") + private String remarksTen; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/drafting/vo/PayDraftingGroupVo.java b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/vo/PayDraftingGroupVo.java new file mode 100644 index 00000000..b90a6c15 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/drafting/vo/PayDraftingGroupVo.java @@ -0,0 +1,24 @@ +package com.jero.drafting.vo; + +import com.jero.drafting.entity.PayDraftingGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class PayDraftingGroupVo extends PayDraftingGroup { + /** + * 打包(1:是,0:否) + */ + private String pack; + /** + * 项目id + */ + private String projectId; + /** + * 当前登录人是否可以操作(1为可操作,2为不可操作) + */ + private Integer checkoutOperation; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingCommon.java index 53fe038e..bf37341b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingCommon.java @@ -56,6 +56,14 @@ public class MeetingCommon { * 理事会会议 */ public final static Integer COUNCIL_MEETING_INT = 6; + /** + * 起草组会议 + */ + public final static String DRAFTING_GROUP_MEETING = "7"; + /** + * 起草组会议 + */ + public final static Integer DRAFTING_GROUP_MEETING_INT = 7; /** * 标准宣贯 */ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/DraftGroupMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/DraftGroupMeetingController.java new file mode 100644 index 00000000..6ecbfda4 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/DraftGroupMeetingController.java @@ -0,0 +1,227 @@ +package com.jero.meeting.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.enums.CompanyMessageEnums; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.api.ISysBaseAPI; +import com.jero.common.system.base.controller.JeroController; +import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.PasswordUtil; +import com.jero.common.util.ValidUtil; +import com.jero.drafting.entity.PayDraftingGroup; +import com.jero.drafting.service.IPayDraftingGroupService; +import com.jero.meeting.common.MeetingCommon; +import com.jero.meeting.entity.PayMeeting; +import com.jero.meeting.entity.PayMeetingHotelContacts; +import com.jero.meeting.service.IPayMeetingHotelContactsService; +import com.jero.meeting.service.IPayMeetingService; +import com.jero.meeting.vo.PayMeetingVO; +import com.jero.meeting.vo.PublishReminderVO; +import com.jero.meeting.vo.UploadFileVO; +import com.jero.modules.system.volid.group.UpdateGroup; +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.beans.BeanUtils; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; + +@Api(tags = "会议管理-起草组会议") +@RestController +@RequestMapping("/meeting/draftGroupMeeting") +@Slf4j +public class DraftGroupMeetingController extends JeroController { + @Resource + private IPayMeetingService payMeetingService; + @Resource + private ISysBaseAPI sysBaseAPI; + @Resource + private IPayMeetingHotelContactsService meetingHotelContactsService; + @Resource + private IPayDraftingGroupService payDraftingGroupService; + + /** + * 分页列表查询 + */ + @RequiresPermissions("draftGroupMeeting:search") + @ApiOperation(value = "会议管理-分页列表查询", notes = "会议管理-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(PayMeeting payMeeting, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + payMeeting.setMeetingType(MeetingCommon.DRAFTING_GROUP_MEETING_INT); + IPage pageList = payMeetingService.queryPageList(payMeeting, pageNo, pageSize, req); + return Result.OK(pageList); + } + + /** + * 添加 + */ + @RequiresPermissions("draftGroupMeeting:add") + @AutoLog(value = "会议管理-添加") + @ApiOperation(value = "会议管理-添加", notes = "会议管理-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody PayMeetingVO payMeetingVO) { + String meetingType = payMeetingVO.getMeetingType(); + if (!Objects.equals(meetingType, MeetingCommon.DRAFTING_GROUP_MEETING)) { + throw new RuntimeException(); + } + ValidUtil.validate(payMeetingVO); + payMeetingService.add(payMeetingVO); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + */ +// @RequiresPermissions("draftGroupMeeting:edit") + @AutoLog(value = "会议管理-编辑") + @ApiOperation(value = "会议管理-编辑", notes = "会议管理-编辑") + @PostMapping(value = "/edit") + public Result edit(@RequestBody PayMeetingVO payMeetingVO) { + String id = payMeetingVO.getId(); + verifyMeetingType(id); + ValidUtil.validate(payMeetingVO, UpdateGroup.class); + payMeetingService.editById(payMeetingVO); + return Result.OK("编辑成功!"); + } + + /** + * 验证会议类型 + * @param id + */ + private void verifyMeetingType(String id) { + if (StringUtils.isBlank(id)) { + throw new JeroBootException("会议id不能为空"); + } + PayMeeting payMeeting = payMeetingService.getById(id); + if (Objects.isNull(payMeeting)) { + throw new JeroBootException("该会议不存在"); + } + Integer meetingType = payMeeting.getMeetingType(); + if (!Objects.equals(meetingType, MeetingCommon.DRAFTING_GROUP_MEETING_INT)) { + throw new RuntimeException(); + } + } + + /** + * 通过id删除 + */ + @RequiresPermissions("draftGroupMeeting:delete") + @AutoLog(value = "会议管理-通过id删除") + @ApiOperation(value = "会议管理-通过id删除", notes = "会议管理-通过id删除") + @GetMapping(value = "/delete") + public Result delete(@RequestParam(name = "id") String id) { + verifyMeetingType(id); + payMeetingService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + */ + @RequiresPermissions("draftGroupMeeting:batchDel") + @AutoLog(value = "会议管理-批量删除") + @ApiOperation(value = "会议管理-批量删除", notes = "会议管理-批量删除") + @GetMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name = "ids") String ids) { + List idList = Arrays.asList(ids.split(",")); + for (String id : idList) { + verifyMeetingType(id); + } + this.payMeetingService.deleteByIds(idList); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + */ + @ApiOperation(value = "会议管理-通过id查询", notes = "会议管理-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id") String id) { + PayMeeting meeting = payMeetingService.queryById(id); + if (meeting == null || !Objects.equals(meeting.getMeetingType(), MeetingCommon.DRAFTING_GROUP_MEETING_INT)) { + return Result.error("未找到对应数据"); + } + //查询会议负责人 + LoginUser user = sysBaseAPI.getUserById(meeting.getDirectorId()); + meeting.setDirectorName(user.getRealname()); + meeting.setDirectorPhone(PasswordUtil.decrypt(user.getPhone())); + PayMeetingVO payMeetingVO = new PayMeetingVO(); + BeanUtils.copyProperties(meeting, payMeetingVO); + String meetingType = meeting.getMeetingType().toString(); + payMeetingVO.setMeetingType(meetingType); + payMeetingVO.setTbMeetingType(meeting.getMeetingType().toString()); + //会议查询酒店联系人列表 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayMeetingHotelContacts::getMeetingId, meeting.getId()); + List payMeetingHotelContactsList = meetingHotelContactsService.list(wrapper); + payMeetingVO.setHotelContactsList(payMeetingHotelContactsList); + // 起草组项目查询起草组项目名 + String draftingGroupId = meeting.getDraftingGroupId(); + PayDraftingGroup payDraftingGroup = payDraftingGroupService.getById(draftingGroupId); + payMeetingVO.setDirectorName(payDraftingGroup.getDraftingGroupProject()); + return Result.OK(payMeetingVO); + } + + /** + * 上传文件 + */ + @AutoLog(value = "上传文件") + @RequiresPermissions("draftGroupMeeting:upload") + @ApiOperation(value = "上传资料", notes = "上传文件") + @PostMapping(value = "/uploadFile") + public Result uploadFile(@RequestBody UploadFileVO uploadFileVO) { + List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.DRAFTING_GROUP_MEETING_INT, false); + return Result.OK("上传资料成功!",strings); + } + + /** + * 上传会议纪要 + */ + @AutoLog(value = "上传会议纪要") + @RequiresPermissions("draftGroupMeeting:uploadCouncil") + @ApiOperation(value = "上传会议纪要", notes = "上传会议纪要") + @PostMapping(value = "/uploadCouncilFile") + public Result uploadCouncilFile(@RequestBody UploadFileVO uploadFileVO) { + payMeetingService.uploadFile(uploadFileVO, MeetingCommon.DRAFTING_GROUP_MEETING_INT); + return Result.OK("上传会议纪要成功!"); + } + + /** + * 发布提醒 + */ + @AutoLog("发布提醒") + @RequiresPermissions("draftGroupMeeting:publish") + @ApiOperation(value = "发布提醒", notes = "发布提醒") + @PostMapping(value = "/publishReminder") + public Result publishReminder(@RequestBody PublishReminderVO publishReminderVO) { + List strings = payMeetingService.publishReminder(publishReminderVO, CompanyMessageEnums.MSG1, "C_OPEN_TYPE1"); + return Result.OK("发布成功",strings); + } + + /** + * 导出excel + */ + @RequiresPermissions("draftGroupMeeting:export") + @GetMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) { + payMeeting.setMeetingType(MeetingCommon.DRAFTING_GROUP_MEETING_INT); + IPage queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request); + List exportList = payMeetingService.getExportList(request, queryPageList); + Class aClass = payMeetingService.getaClass(MeetingCommon.DRAFTING_GROUP_MEETING_INT); + return super.exportListXls(exportList, aClass, "会议管理"); + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/DraftGroupMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/DraftGroupMeetingSituationController.java new file mode 100644 index 00000000..030ebc28 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/DraftGroupMeetingSituationController.java @@ -0,0 +1,272 @@ +package com.jero.meeting.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.aspect.annotation.CompanyNameTranslate; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.common.aspect.annotation.DictPoint; +import com.jero.common.exception.JeroBootException; +import com.jero.common.service.RolePermissionService; +import com.jero.common.system.base.controller.JeroController; +import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.ValidUtil; +import com.jero.common.util.oConvertUtils; +import com.jero.drafting.entity.PayDraftingGroup; +import com.jero.drafting.entity.PayDraftingGroupSubItem; +import com.jero.drafting.service.IPayDraftingGroupService; +import com.jero.drafting.service.IPayDraftingGroupSubItemService; +import com.jero.meeting.common.MeetingCommon; +import com.jero.meeting.entity.PayMeeting; +import com.jero.meeting.entity.PayMeetingSituation; +import com.jero.meeting.service.IPayMeetingSituationService; +import com.jero.meeting.vo.CheckVO; +import com.jero.meeting.vo.PayMeetingSituationVO; +import com.jero.meeting.vo.SetGuestsUploadFileVO; +import com.jero.project.common.PayProjectCommon; +import com.jero.project.entity.PayWorkingGroup; +import com.jero.project.entity.PayWorkingGroupSubItem; +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.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 java.util.Arrays; +import java.util.List; +import java.util.Objects; + +/** + * 起草组会议 参会人信息 + * 2024-01-08 + */ +@Api(tags = "参会人员信息-起草组会议") +@RestController +@RequestMapping("/meeting/draftGroupMeetingSituation") +@Slf4j +public class DraftGroupMeetingSituationController extends JeroController { + @Resource + private IPayMeetingSituationService payMeetingSituationService; + @Resource + private IPayDraftingGroupService payDraftingGroupService; + @Resource + private IPayDraftingGroupSubItemService payDraftingGroupSubItemService; + @Resource + private RolePermissionService rolePermissionService; + + private final Integer MEETING_TYPE = MeetingCommon.DRAFTING_GROUP_MEETING_INT; + + /** + * 分页列表查询 + */ + @CompanyNameTranslate + @RequiresPermissions("draftGroupMeetingSituation:search") + @ApiOperation(value = "参会人员信息-分页列表查询", notes = "参会人员信息-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(PayMeetingSituation payMeetingSituation, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + String meetingId = payMeetingSituation.getMeetingId(); + if (StringUtils.isBlank(meetingId)) { + throw new JeroBootException("会议id不能为空"); + } + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, req.getParameterMap()); + String particularYear = req.getParameter("particularYear"); + if (StringUtils.isNotBlank(particularYear)) { + queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )", particularYear); + } + Page page = new Page<>(pageNo, pageSize); + IPage pageList = payMeetingSituationService.pageListContract(meetingId, page, queryWrapper, MEETING_TYPE); + List situationList = pageList.getRecords(); + for (PayMeetingSituation meetingSituation : situationList) { + Integer payMode = meetingSituation.getPayMode(); + //汇款并且缴费凭证为空 + if (Objects.equals(payMode, 1) && StringUtils.isBlank(meetingSituation.getPaymentRecord())) { + meetingSituation.setIdentification(PayProjectCommon.YES); + } else { + meetingSituation.setIdentification(PayProjectCommon.NO); + } + } + return Result.OK(pageList); + } + + /** + * 添加参会人 + */ + @RequiresPermissions("draftGroupMeetingSituation:add") + @AutoLog(value = "参会人员信息-添加参会人") + @ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人") + @PostMapping(value = "/add") + public Result add(@RequestBody PayMeetingSituation payMeetingSituation) { + payMeetingSituationService.add(payMeetingSituation, MEETING_TYPE); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + */ + @AutoLog(value = "参会人员信息-编辑") + @RequiresPermissions("draftGroupMeetingSituation:edit") + @ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑") + @PostMapping(value = "/edit") + public Result edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) { + payMeetingSituationService.editById(payMeetingSituationVO, MEETING_TYPE); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + */ + @RequiresPermissions("draftGroupMeetingSituation:delete") + @AutoLog(value = "参会人员信息-通过id删除") + @ApiOperation(value = "参会人员信息-通过id删除", notes = "参会人员信息-通过id删除") + @GetMapping(value = "/delete") + public Result delete(@RequestParam(name = "id") String id) { + if (StringUtils.isBlank(id)) { + return Result.error("会议成员id不能为空"); + } + payMeetingSituationService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + */ + @RequiresPermissions("draftGroupMeetingSituation:batchDel") + @AutoLog(value = "参会人员信息-批量删除") + @ApiOperation(value = "参会人员信息-批量删除", notes = "参会人员信息-批量删除") + @GetMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name = "ids") String ids) { + if (StringUtils.isBlank(ids)) { + return Result.error("会议成员id不能为空"); + } + this.payMeetingSituationService.deleteByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + */ + @CompanyNameTranslate + @DictPoint + @ApiOperation(value = "参会人员信息-通过id查询", notes = "参会人员信息-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id") String id) { + PayMeetingSituation payMeetingSituation = payMeetingSituationService.queryById(id); + if (payMeetingSituation == null) { + return Result.error("未找到对应数据"); + } + return Result.OK(payMeetingSituation); + } + + /** + * 通过会议id查询自己的参会人信息 + */ +// @CompanyNameTranslate +// @DictPoint + @ApiOperation(value = "参会人员信息-通过会议id查询自己的参会人信息") + @GetMapping(value = "/queryByMeetingId") + public Result queryByMeetingId(@RequestParam(name = "meetingId") String meetingId) { + PayMeetingSituation payMeetingSituation = payMeetingSituationService.queryByMeetingIdAndContactId(meetingId); + if (payMeetingSituation == null) { + return Result.error("未找到对应数据"); + } + return Result.OK(payMeetingSituation); + } + + /** + * 审核报名信息 + */ + @AutoLog(value = "审核报名信息") + @RequiresPermissions("draftGroupMeetingSituation:auditCredentials") + @ApiOperation(value = "审核报名信息") + @PostMapping(value = "/checkRegister") + public Result checkRegister(@RequestBody CheckVO checkVO) { + payMeetingSituationService.checkRegister(checkVO); + return Result.OK("审核成功!"); + } + +// /** +// * 审核缴费凭证 +// */ +// @RequiresPermissions("draftGroupMeetingSituation:auditSignUp") +// @AutoLog(value = "审核缴费凭证") +// @ApiOperation(value = "审核缴费凭证") +// @PostMapping(value = "/check") +// public Result check(@RequestBody CheckVO checkVO) { +// payMeetingSituationService.check(checkVO); +// return Result.OK("审核成功!"); +// } + + /** + * 设置嘉宾上传文件 + */ + @RequiresPermissions("draftGroupMeetingSituation:guestsUploadFileFlag") + @AutoLog(value = "设置嘉宾上传文件") + @ApiOperation(value = "设置嘉宾上传文件", notes = "设置嘉宾上传文件") + @PostMapping(value = "/setGuestsUploadFile") + public Result setGuestsUploadFile(@RequestBody SetGuestsUploadFileVO setGuestsUploadFileVO) { + ValidUtil.validate(setGuestsUploadFileVO); + payMeetingSituationService.setGuestsUploadFile(setGuestsUploadFileVO,MEETING_TYPE); + return Result.OK("设置嘉宾上传文件成功!"); + } + + /** + * 导出excel + */ + @RequiresPermissions("draftGroupMeetingSituation:export") + @GetMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, PayMeetingSituation payMeetingSituation) { + List objects = payMeetingSituationService.MeetingSituationGetModelAndView(request, payMeetingSituation,MEETING_TYPE); + Class aClass = payMeetingSituationService.getaClass(MEETING_TYPE); + return super.exportListXls(objects, aClass, "参会人员信息"); + } + + /** + * 分页列表查询 + * + * @param payDraftingGroupSubItem 起草组成员 + * @param pageNo 页数 + * @param pageSize 条数 + * @param paymentDate 日期 + * @return + */ + @RequiresPermissions("draftingGroupMember:search") + @ApiOperation(value = "起草组成员-发布提醒列表查询") + @GetMapping(value = "/publishReminderList") + public Result publishReminderList(PayDraftingGroupSubItem payDraftingGroupSubItem, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(name = "paymentDate", required = false) String paymentDate) { + if (!StringUtils.isBlank(payDraftingGroupSubItem.getChargeCompanyTemporaryName()) && payDraftingGroupSubItem.getChargeCompanyTemporaryName().length() > 50) { + return Result.error("成员单位长度不能大于50个字符"); + } + if (StringUtils.isBlank(payDraftingGroupSubItem.getDraftingGroupId())) { + return Result.error("起草组id不能为空!"); + } + if(!StringUtils.isBlank(payDraftingGroupSubItem.getChargeCompanyTemporaryName())){ + payDraftingGroupSubItem.setChargeCompanyTemporaryName(oConvertUtils.replaceAllPercent(payDraftingGroupSubItem.getChargeCompanyTemporaryName())); + } + PayDraftingGroup payDraftingGroup = payDraftingGroupService.getById(payDraftingGroupSubItem.getDraftingGroupId()); + if(Objects.isNull(payDraftingGroup)){ + return Result.error("起草组不存在!"); + } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(!rolePermissionService.getRolePermission("draftingGroupMember:search") + && !Objects.equals(payDraftingGroup.getPrincipalIdA(),sysUser.getId()) + && !Objects.equals(payDraftingGroup.getPrincipalIdB(),sysUser.getId())){ + return Result.error("数据权限不足!"); + } + Page page = new Page<>(pageNo, pageSize); + IPage pageList = payDraftingGroupSubItemService.publishReminderList(page, payDraftingGroupSubItem); + return Result.OK(pageList); + } +} \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java index a37e16a9..6aef4774 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java @@ -397,4 +397,13 @@ public class PayMeeting implements Serializable { @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "征集截止日期") private java.util.Date endTimeAddQuestion; + + /**起草组id*/ + @Excel(name = "起草组名称", width = 15, dictTable = "pay_drafting_group",dicText = "drafting_group_project",dicCode = "id") + @ApiModelProperty(value = "起草id") + private String draftingGroupId; + + /**起草组名称*/ + @ApiModelProperty(value = "起草组名称") + private String draftingGroupName; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingMapper.java index 80ef82e2..0ff0c727 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingMapper.java @@ -35,6 +35,9 @@ public interface PayMeetingMapper extends BaseMapper { IPage workGroupPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + IPage draftGroupPage(Page page,@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + IPage standardPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); IPage basePage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingMapper.xml index debb2bee..34ac71c2 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingMapper.xml @@ -230,6 +230,16 @@ ${ew.customSqlSegment} + + + 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 = pcm.company_name, pmps.company_name, concat(pmps.company_name,'(更名为',pcm.company_name,')')) as company_name, + IF( + pmps.company_name = + IF( + pmps.company_name LIKE '%(未审核)', + CONCAT(pcm.company_name, '(未审核)'), + pcm.company_name + ), + pmps.company_name, + CONCAT(pmps.company_name, '(更名为', pcm.company_name, ')') + ) AS company_name, pmps.company_contact_id,pmps.company_contact_temporary_id,pmps.company_contact_name,pmps.post_contact_id, pmps.post_contact_temporary_id, pmps.post_contact_name,pmps.amount_receivable,pmps.paid_amount,pmps.confirm_amount,pmps.payment_method,pmps.charge_notice_no, diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/common/PayProjectCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/common/PayProjectCommon.java index 8ef9cfa3..95c6fac0 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/common/PayProjectCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/common/PayProjectCommon.java @@ -97,17 +97,22 @@ public class PayProjectCommon { public static final Integer YES = 1; /** - * 项目类型1:工作组,2:分标委, 3:理事会 + * 项目类型1:工作组,2:分标委, 3:理事会, 4:起草组 */ public final static Integer PROJECT_TYPE_FILE1 = 1; /** - * 项目类型1:工作组,2:分标委, 3:理事会 + * 项目类型1:工作组,2:分标委, 3:理事会, 4:起草组 */ public final static Integer PROJECT_TYPE_FILE2 = 2; /** - * 项目类型1:工作组,2:分标委, 3:理事会 + * 项目类型1:工作组,2:分标委, 3:理事会, 4:起草组 */ public final static Integer PROJECT_TYPE_FILE3 = 3; + + /** + * 项目类型1:工作组,2:分标委, 3:理事会, 4:起草组 + */ + public final static Integer PROJECT_TYPE_FILE4 = 4; /** * 需要发票(1:增值税普通发票,2:增值税专用发票,0:否,3:需要发票(小程序需要)) */ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java index 185076e2..0647de4f 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java @@ -25,6 +25,8 @@ import com.jero.contract.entity.PayIncomeContract; import com.jero.contract.entity.PayIncomeContractAssociated; import com.jero.contract.service.IPayIncomeContractAssociatedService; import com.jero.contract.service.IPayIncomeContractService; +import com.jero.drafting.entity.PayDraftingGroupSubItemContacts; +import com.jero.drafting.service.IPayDraftingGroupSubItemContactsService; import com.jero.mail.entity.PayMailBill; import com.jero.mail.entity.PayMailBillProject; import com.jero.mail.service.IPayMailBillProjectService; @@ -102,6 +104,8 @@ public class PayCommonProjectController extends JeroController queryPayWorkingGroupDistributionRecord = new LambdaQueryWrapper<>(); + queryPayWorkingGroupDistributionRecord.eq(PayWorkingGroupDistributionRecord::getSubId,id); + queryPayWorkingGroupDistributionRecord.eq(PayWorkingGroupDistributionRecord::getContactsId,sysUser.getId()); + queryPayWorkingGroupDistributionRecord.groupBy(PayWorkingGroupDistributionRecord::getFileId); + List listPayWorkingGroupDistributionRecord = payWorkingGroupDistributionRecordService.list(queryPayWorkingGroupDistributionRecord); + if(!CollectionUtils.isEmpty(listPayWorkingGroupDistributionRecord)){ + StringBuilder sb = new StringBuilder(); + listPayWorkingGroupDistributionRecord.forEach(p->{ + sb.append(p.getFileId()); + if(listPayWorkingGroupDistributionRecord.indexOf(p) != (listPayWorkingGroupDistributionRecord.size() - 1)){ + sb.append(","); + } + }); + payCommonProject.setFiles(sb.toString()); + } + LambdaQueryWrapper queryPayDraftingGroupSubItemContacts = new LambdaQueryWrapper<>(); + queryPayDraftingGroupSubItemContacts.eq(PayDraftingGroupSubItemContacts::getDraftingGroupId,id); + List pwg = payDraftingGroupSubItemContactsService.list(queryPayDraftingGroupSubItemContacts); + if(!CollectionUtils.isEmpty(pwg)){ + pwg.sort(Comparator.comparing(PayDraftingGroupSubItemContacts::getOrderNum)); + payCommonProject.setContactsTemporaryId(pwg.get(0).getContactsTemporaryId()); + payCommonProject.setContactsTemporaryName(pwg.get(0).getContactsTemporaryName()); + }else{ + payCommonProject.setContactsTemporaryId(""); + payCommonProject.setContactsTemporaryName(""); + } + + } + String strProject = JSON.toJSONString(payCommonProject); payCompanyCommonProject = JSONObject.parseObject(strProject,PayCompanyCommonProject.class); if(Objects.isNull(payCompanyCommonProject.getPaidAmount())){ @@ -557,7 +594,7 @@ public class PayCommonProjectController extends JeroController listData = new ArrayList<>(); - if(projectType == PayProjectCommon.PROJECT_TYPE_FILE1){ + if(Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE_FILE1)){ //LambdaQueryWrapper queryPayWorkingGroupSubItemContacts = new LambdaQueryWrapper<>(); //queryPayWorkingGroupSubItemContacts.eq(PayWorkingGroupSubItemContacts::getWorkingGroupId,projectId); //List list = payWorkingGroupSubItemContactsService.list(queryPayWorkingGroupSubItemContacts); @@ -228,7 +230,7 @@ public class PayWorkingGroupDistributionRecordController extends JeroController< listData.add(payContactsManagement); }); } - }else if(projectType == PayProjectCommon.PROJECT_TYPE_FILE2){ + }else if(Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE_FILE2)){ LambdaQueryWrapper queryPayCaseCommitteeSubitem = new LambdaQueryWrapper<>(); queryPayCaseCommitteeSubitem.eq(PayCaseCommitteeSubitem::getCommitteeId,projectId); List list = payCaseCommitteeSubitemService.list(queryPayCaseCommitteeSubitem); @@ -241,7 +243,7 @@ public class PayWorkingGroupDistributionRecordController extends JeroController< listData.add(payContactsManagement); }); } - }else if(projectType == PayProjectCommon.PROJECT_TYPE_FILE3){ + }else if(Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE_FILE3)){ LambdaQueryWrapper queryPayCaseCommitteeSubitem = new LambdaQueryWrapper<>(); queryPayCaseCommitteeSubitem.eq(PayCaseCouncilSubitem::getCouncilId,projectId); List list = payCaseCouncilSubitemService.list(queryPayCaseCommitteeSubitem); @@ -254,6 +256,17 @@ public class PayWorkingGroupDistributionRecordController extends JeroController< listData.add(payContactsManagement); }); } + }else if(Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE_FILE4)){ + List list = payDraftingGroupSubItemContactsService.getContactsInfo(projectId); + if(!CollectionUtils.isEmpty(list)){ + list.forEach(p->{ + PayContactsManagement payContactsManagement = new PayContactsManagement(); + payContactsManagement.setId(p.getContactsTemporaryId()); + payContactsManagement.setName(p.getContactsTemporaryName()); + payContactsManagement.setCompanyName(p.getCompanyName()); + listData.add(payContactsManagement); + }); + } }else { throw new JeroBootException("项目状态不正确!"); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayWorkingGroupSubItemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayWorkingGroupSubItemController.java index cbc6ea53..89a7c272 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayWorkingGroupSubItemController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayWorkingGroupSubItemController.java @@ -2,7 +2,6 @@ package com.jero.project.controller; 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.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; @@ -14,13 +13,11 @@ import com.jero.common.service.ProjectDetailService; import com.jero.common.service.RolePermissionService; import com.jero.common.service.SendMessageService; import com.jero.common.system.base.controller.JeroController; -import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; import com.jero.common.util.oConvertUtils; import com.jero.common.vo.ProjectDetailVO; -import com.jero.company.entity.PayContactsManagement; import com.jero.contract.entity.PayIncomeContract; import com.jero.contract.entity.PayIncomeContractAssociated; import com.jero.contract.service.IPayIncomeContractAssociatedService; @@ -52,7 +49,6 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.poi.ss.formula.functions.T; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.BeanUtils; @@ -155,6 +151,58 @@ public class PayWorkingGroupSubItemController extends JeroController getItemById(PayWorkingGroupSubItem payWorkingGroupSubItem, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(name = "paymentDate", required = false) String paymentDate) { + if (!StringUtils.isBlank(payWorkingGroupSubItem.getChargeCompanyTemporaryName()) && payWorkingGroupSubItem.getChargeCompanyTemporaryName().length() > 50) { + return Result.error("成员单位长度不能大于50个字符"); + } + if (StringUtils.isBlank(payWorkingGroupSubItem.getWorkingGroupId())) { + return Result.error("工作组id不能为空!"); + } + if (StringUtils.isBlank(payWorkingGroupSubItem.getId())) { + return Result.error("工作组成员id不能为空!"); + } + if(!StringUtils.isBlank(payWorkingGroupSubItem.getChargeCompanyTemporaryName())){ + payWorkingGroupSubItem.setChargeCompanyTemporaryName(oConvertUtils.replaceAllPercent(payWorkingGroupSubItem.getChargeCompanyTemporaryName())); + } + PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorkingGroupSubItem.getWorkingGroupId()); + if(Objects.isNull(payWorkingGroup)){ + return Result.error("工作组不存在!"); + } + Page page = new Page<>(pageNo, pageSize); + IPage pageList = payWorkingGroupSubItemService.queryPageList(page, payWorkingGroupSubItem, paymentDate); + if(!CollectionUtils.isEmpty(pageList.getRecords())){ + List list = pageList.getRecords(); + list.forEach(p->{ + if(Objects.isNull(p.getReceivableAmount())){ + p.setReceivableAmount(new BigDecimal("0.00")); + } + if(Objects.isNull(p.getPaidAmount())){ + p.setPaidAmount(new BigDecimal("0.00")); + } + }); + } + List records = pageList.getRecords(); + if (CollectionUtils.isEmpty(records)){ + return Result.error("该成员不存在"); + } + PayWorkingGroupSubItem item = records.get(0); + return Result.OK(item); + } + /** * 分页列表查询 * @@ -390,6 +438,27 @@ public class PayWorkingGroupSubItemController extends JeroController editCompany(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) { + if (Objects.isNull(payWorkingGroupSubItem.getEstimatedArrivalDate())) { + return Result.error("预估到账日期不能为空"); + } + StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem); + if (!StringUtils.isBlank(msg)) { + return Result.error(msg.toString()); + } + payWorkingGroupSubItemService.editPayWorkingGroupSubItemByCompany(payWorkingGroupSubItem); + return Result.OK("编辑成功!"); + } + /** * 催款提醒 * diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupDataFile.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupDataFile.java index 405e58fb..5d1ad7cf 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupDataFile.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroupDataFile.java @@ -1,21 +1,21 @@ package com.jero.project.entity; -import java.io.Serializable; 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 lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.Size; +import java.io.Serializable; /** * @Description: pay_working_group_data_file @@ -40,8 +40,8 @@ public class PayWorkingGroupDataFile implements Serializable { @NotEmpty(message = "工项目id不能为空") @Size(max = 32,message = "项目id长度不能大于32个字符") private java.lang.String projectId; - /**项目类型1:工作组,2:分标委*/ - @ApiModelProperty(value = "项目类型1:工作组,2:分标委,3:理事会") + /**项目类型1:工作组,2:分标委,3:理事会, 4:起草组*/ + @ApiModelProperty(value = "项目类型1:工作组,2:分标委,3:理事会,4:起草组") @NotEmpty(message = "项目类型1不能为空") private java.lang.Integer projectType; /**文件id*/ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml index 332d6d4b..5aa2b668 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml @@ -11,7 +11,17 @@ 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 = 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, ')') + ) AS chargeCompanyTemporaryName, pcp.charge_use, pcp.contacts_id, pcp.contacts_temporary_id, diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml index 51e2ac37..4839cff4 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupSubItemMapper.xml @@ -9,7 +9,17 @@ pwgs.charge_company_id AS chargeCompanyId, pwgs.charge_company_temporary_id AS chargeCompanyTemporaryId, - if(pwgs.charge_company_temporary_name = pcm.company_name, pwgs.charge_company_temporary_name, concat(pwgs.charge_company_temporary_name,'(更名为',pcm.company_name,')')) as chargeCompanyTemporaryName, +# 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, + IF( + pwgs.charge_company_temporary_name = + IF( + pwgs.charge_company_temporary_name LIKE '%(未审核)', + CONCAT(pcm.company_name, '(未审核)'), + pcm.company_name + ), + pwgs.charge_company_temporary_name, + CONCAT(pwgs.charge_company_temporary_name, '(更名为', pcm.company_name, ')') + ) AS chargeCompanyTemporaryName, pwgs.contacts_id_one AS contactsIdOne, pwgs.contacts_temporary_id_one AS contactsTemporaryIdOne, pwgs.contacts_temporary_name_one AS contactsTemporaryNameOne, @@ -78,6 +88,9 @@ AND pwgs.estimated_arrival_date <= #{payWorkingGroupSubItem.estimatedArrivalEndDate} + + and pwgs.id = #{payWorkingGroupSubItem.id} + GROUP BY pwgs.id ORDER BY pwgs.create_time desc diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayWorkingGroupSubItemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayWorkingGroupSubItemService.java index ba8ac742..4ba05752 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayWorkingGroupSubItemService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/IPayWorkingGroupSubItemService.java @@ -1,11 +1,9 @@ package com.jero.project.service; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import com.jero.company.entity.PayContactsManagement; import com.jero.project.entity.PayWorkGroupSubletStatistics; import com.jero.project.entity.PayWorkingGroupSubItem; import com.jero.project.entity.PayWorkingGroupSubletSearch; @@ -50,6 +48,17 @@ public interface IPayWorkingGroupSubItemService extends IService list = new ArrayList<>(); String msg = ""; List listPayWorkingGroupDistributionRecord = new ArrayList<>(); - if(payWorkingGroupDistributionRecord.getProjectType() == PayProjectCommon.PROJECT_TYPE_FILE1){ + if(Objects.equals(payWorkingGroupDistributionRecord.getProjectType(),PayProjectCommon.PROJECT_TYPE_FILE1)){ PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorkingGroupDistributionRecord.getProjectId()); if(Objects.isNull(payWorkingGroup)){ throw new JeroBootException("工作组不存在!"); @@ -134,7 +150,7 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl queryPayContactsManagement = new LambdaQueryWrapper<>(); queryPayContactsManagement.in(PayContactsManagement::getId, Arrays.asList(contactsIds.split(","))); List listContacts = payContactsManagementService.list(queryPayContactsManagement); @@ -166,7 +182,7 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl queryPayContactsManagement = new LambdaQueryWrapper<>(); queryPayContactsManagement.in(PayContactsManagement::getId, Arrays.asList(contactsIds.split(","))); List listContacts = payContactsManagementService.list(queryPayContactsManagement); @@ -197,6 +213,25 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl queryPayContactsManagementTemporary = new LambdaQueryWrapper<>(); + queryPayContactsManagementTemporary.in(PayContactsManagementTemporary::getId, Arrays.asList(s)); + List listContacts = payContactsManagementTemporaryService.list(queryPayContactsManagementTemporary); + if(!CollectionUtils.isEmpty(listContacts)){ + list = listContacts; + } + msg = payDraftingGroup.getDraftingGroupProject(); }else{ throw new JeroBootException("项目状态不正确!"); } @@ -212,14 +247,6 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl listMsg = new ArrayList<>(); for (PayContactsManagementTemporary p : list) { try { - List listStr = listPayWorkingGroupDistributionRecord.stream().filter(item-> - (payWorkingGroupDistributionRecord.getProjectType() == PayProjectCommon.PROJECT_TYPE_FILE1) ? - Objects.equals(item.getTemporaryContactsId(),p.getId()) : - Objects.equals(item.getContactsId(),p.getId())).collect(Collectors.toList()); - if(CollectionUtils.isEmpty(listStr)){ - continue; - } - // 发送消息 SendMessageDTO sendMessageDTO = new SendMessageDTO(); Integer sendEmailFlag = payWorkingGroupDistributionRecord.getSendEmailFlag(); @@ -239,10 +266,33 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl listStr = listPayWorkingGroupDistributionRecord.stream().filter(item-> + Objects.equals(payWorkingGroupDistributionRecord.getProjectType(),PayProjectCommon.PROJECT_TYPE_FILE1) ? + Objects.equals(item.getTemporaryContactsId(),p.getId()) : + Objects.equals(item.getContactsId(),p.getId())).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(listStr)){ + continue; + } json.put("id",listStr.get(0).getSubId()); - }else if(payWorkingGroupDistributionRecord.getProjectType() == PayProjectCommon.PROJECT_TYPE_FILE2){ + }else if(Objects.equals(payWorkingGroupDistributionRecord.getProjectType(),PayProjectCommon.PROJECT_TYPE_FILE2)){ + List listStr = listPayWorkingGroupDistributionRecord.stream().filter(item-> + Objects.equals(payWorkingGroupDistributionRecord.getProjectType(),PayProjectCommon.PROJECT_TYPE_FILE2) ? + Objects.equals(item.getTemporaryContactsId(),p.getId()) : + Objects.equals(item.getContactsId(),p.getId())).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(listStr)){ + continue; + } json.put("id",listStr.get(0).getProjectId()); + }else if(Objects.equals(payWorkingGroupDistributionRecord.getProjectType(),PayProjectCommon.PROJECT_TYPE_FILE4)){ + List listStr = listPayWorkingGroupDistributionRecord.stream().filter(item-> + Objects.equals(payWorkingGroupDistributionRecord.getProjectType(),PayProjectCommon.PROJECT_TYPE_FILE4) ? + Objects.equals(item.getTemporaryContactsId(),p.getId()) : + Objects.equals(item.getContactsId(),p.getId())).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(listStr)){ + continue; + } + json.put("id",listStr.get(0).getSubId()); } sendMessageDTO.setBusId(json.toJSONString()); sendMessageService.SendMessageService(sendMessageDTO); @@ -292,7 +342,7 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl list = new ArrayList<>(); List listPayWorkingGroupDistributionRecord = new ArrayList<>(); - if(payWorkingGroupDistributionRecord.getProjectType() == PayProjectCommon.PROJECT_TYPE_FILE1){ + if(Objects.equals(payWorkingGroupDistributionRecord.getProjectType(),PayProjectCommon.PROJECT_TYPE_FILE1)){ PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorkingGroupDistributionRecord.getProjectId()); if(Objects.isNull(payWorkingGroup)){ throw new JeroBootException("工作组不存在!"); @@ -321,7 +371,7 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl queryPayCaseCommitteeSubitem = new LambdaQueryWrapper<>(); queryPayCaseCommitteeSubitem.eq(PayCaseCommitteeSubitem::getCommitteeId,payWorkingGroupDistributionRecord.getProjectId()); @@ -362,7 +412,7 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(PayCaseCouncilSubitem::getCouncilId,payWorkingGroupDistributionRecord.getProjectId()); @@ -403,6 +453,35 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl{ + OSSFile byId = iossFileService.getById(p.getFileId()); + if(Objects.isNull(byId)){ + throw new JeroBootException("没有找到文件!"); + } + // 文件路径 + String url = byId.getUrl(); + listFile.add(path + url); + payWorkingGroupDistributionRecord.setDataId(p.getId()); + setRecordByDrafting( payWorkingGroupDistributionRecord,s,listPayWorkingGroupDistributionRecord, byId); + }); + LambdaQueryWrapper queryPayContactsManagementTemporary = new LambdaQueryWrapper<>(); + queryPayContactsManagementTemporary.in(PayContactsManagementTemporary::getId, Arrays.asList(s)); + List listContacts = payContactsManagementTemporaryService.list(queryPayContactsManagementTemporary); + if(!CollectionUtils.isEmpty(listContacts)){ + list = listContacts; + } + msg = payDraftingGroup.getDraftingGroupProject(); }else { throw new JeroBootException("项目状态不正确!"); } @@ -419,7 +498,7 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl listStr = listPayWorkingGroupDistributionRecord.stream().filter(item-> - (payWorkingGroupDistributionRecord.getProjectType() == PayProjectCommon.PROJECT_TYPE_FILE1) ? + Objects.equals(payWorkingGroupDistributionRecord.getProjectType(),PayProjectCommon.PROJECT_TYPE_FILE1) ? Objects.equals(item.getTemporaryContactsId(),p.getId()) : Objects.equals(item.getContactsId(),p.getId())).collect(Collectors.toList()); if(CollectionUtils.isEmpty(listStr)){ @@ -444,9 +523,9 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl listPayWorkingGroupDistributionRecord,OSSFile byId){ + // 查询工作组成员 + LambdaQueryWrapper queryPayDraftingGroupSubItemContacts = new LambdaQueryWrapper<>(); + queryPayDraftingGroupSubItemContacts.eq(PayDraftingGroupSubItemContacts::getDraftingGroupId,payWorkingGroupDistributionRecord.getProjectId()); + queryPayDraftingGroupSubItemContacts.in(PayDraftingGroupSubItemContacts::getContactsTemporaryId,Arrays.asList(s)); + List list = payDraftingGroupSubItemContactsService.list(queryPayDraftingGroupSubItemContacts); + if(!CollectionUtils.isEmpty(list)){ + list.forEach(p->{ + PayWorkingGroupDistributionRecord payWorkingGroupDistributionRecordNew = new PayWorkingGroupDistributionRecord(); + payWorkingGroupDistributionRecordNew.setDataId(payWorkingGroupDistributionRecord.getDataId()); + payWorkingGroupDistributionRecordNew.setProjectId(payWorkingGroupDistributionRecord.getProjectId()); + payWorkingGroupDistributionRecordNew.setProjectType(payWorkingGroupDistributionRecord.getProjectType()); + payWorkingGroupDistributionRecordNew.setFileId(byId.getId()); + payWorkingGroupDistributionRecordNew.setSubId(p.getDraftingGroupSubId()); + payWorkingGroupDistributionRecordNew.setContactsId(p.getContactsId()); + payWorkingGroupDistributionRecordNew.setContactsName(p.getContactsTemporaryName()); + payWorkingGroupDistributionRecordNew.setTemporaryContactsId(p.getContactsTemporaryId()); + listPayWorkingGroupDistributionRecord.add(payWorkingGroupDistributionRecordNew); + }); + } + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupServiceImpl.java index b97a9983..61a5c7ac 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupServiceImpl.java @@ -20,6 +20,9 @@ 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.meeting.common.MeetingCommon; +import com.jero.meeting.entity.PayMeeting; +import com.jero.meeting.service.IPayMeetingService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import com.jero.project.common.PayProjectCommon; @@ -84,6 +87,8 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl queryPageList(Page page, PayWorkingGroup payWorkingGroup) { @@ -117,6 +122,14 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl meetingQuery = new LambdaQueryWrapper<>(); + meetingQuery.eq(PayMeeting::getWorkingGroupId,id); + meetingQuery.eq(PayMeeting::getMeetingType, MeetingCommon.WORKING_GROUP_MEETING_INT); + List listPayMeeting = payMeetingService.list(meetingQuery); + if (!CollectionUtils.isEmpty(listPayMeeting)) { + throw new JeroBootException(payWorkingGroupOld.getWorkingGroupProject() + "工作组下存在会议,不可进行删除!"); + } payWorkingGroupService.removeById(id); LambdaUpdateWrapper updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>(); updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getWorkingGroupId,id); @@ -141,7 +154,15 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query); if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItem)) { - sb1.append(payWorkingGroupOld.getWorkingGroupProject() + "工作组下存在企业,不可进行删除!
"); + } + // 判断工作组下是否存在会议 + LambdaQueryWrapper meetingQuery = new LambdaQueryWrapper<>(); + meetingQuery.eq(PayMeeting::getWorkingGroupId,p); + meetingQuery.eq(PayMeeting::getMeetingType, MeetingCommon.WORKING_GROUP_MEETING_INT); + List listPayMeeting = payMeetingService.list(meetingQuery); + if (!CollectionUtils.isEmpty(listPayMeeting)) { + sb1.append(payWorkingGroupOld.getWorkingGroupProject() + "工作组下存在会议,不可进行删除!
"); } }); if(!StringUtils.isEmpty(sb)){ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupSubItemContactsServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupSubItemContactsServiceImpl.java index 670c86c1..4424f916 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupSubItemContactsServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayWorkingGroupSubItemContactsServiceImpl.java @@ -1,6 +1,5 @@ package com.jero.project.service.impl; -import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.project.entity.PayWorkingGroupSubItemContacts; @@ -8,11 +7,13 @@ import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper; import com.jero.project.service.IPayWorkingGroupSubItemContactsService; import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.service.IPayContactsManagementTemporaryService; +import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; @@ -33,6 +34,9 @@ public class PayWorkingGroupSubItemContactsServiceImpl extends ServiceImpl queryPayWorkingGroupSubItemContacts = new LambdaQueryWrapper<>(); queryPayWorkingGroupSubItemContacts.eq(PayWorkingGroupSubItemContacts::getWorkingGroupId,projectId); List listPayWorkingGroupSubItemContacts = this.list(queryPayWorkingGroupSubItemContacts); + if(CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)){ + return listPayWorkingGroupSubItemContacts; + } //2.根据成员id获取用户信息 List temporaryIds = listPayWorkingGroupSubItemContacts.stream().map(PayWorkingGroupSubItemContacts::getContactsTemporaryId).collect(Collectors.toList()); List contactsManagementTemporaryList = payContactsManagementTemporaryService.listByIds(temporaryIds); @@ -40,7 +44,10 @@ public class PayWorkingGroupSubItemContactsServiceImpl extends ServiceImpl queryWorkingGroupSubItemContacts = new LambdaQueryWrapper<>(); + queryWorkingGroupSubItemContacts.eq(PayWorkingGroupSubItemContacts::getWorkingGroupSubId, workingGroupSubItemId); + queryWorkingGroupSubItemContacts.eq(PayWorkingGroupSubItemContacts::getContactsId,sysUser.getId()); + long l = payWorkingGroupSubItemContactsService.count(queryWorkingGroupSubItemContacts); + if(l == 0){ + throw new JeroBootException("非工作组成员不可操作!"); + } + + // 项目为打包状态 || 到账!=0 || 开票!=0 || 邮寄!=0 + if(!Objects.equals(payWorkingGroupSubItem.getChargeCompanyId(),payWorkingGroupSubItemOld.getChargeCompanyId()) + && (Objects.equals(payWorkingGroupSubItem.getPack(),PayProjectCommon.PACKAGING1) + || !Objects.equals(payWorkingGroupSubItem.getInAccount(),PayProjectCommon.IN_ACCOUNT0) + || !Objects.equals(payWorkingGroupSubItem.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0) + || !Objects.equals(payWorkingGroupSubItem.getMail(),PayProjectCommon.MAIL0))){ + throw new JeroBootException("来款企业不可更改!"); + } + if(Objects.equals(payWorkingGroupSubItem.getChargeWay(),PayProjectCommon.CHARGE_WAY2)){ + if(Objects.isNull(payWorkingGroupSubItem.getReceivableAmount())){ + throw new JeroBootException("待确收金额不能为空"); + } + if(StringUtils.isBlank(payWorkingGroupSubItem.getContractNum())){ + throw new JeroBootException("合同号不能为空"); + } + } + if(Objects.equals(payWorkingGroupSubItem.getChargeWay(),PayProjectCommon.CHARGE_WAY3)){ + if(Objects.isNull(payWorkingGroupSubItem.getChargeNoticeNo())){ + throw new JeroBootException("收费通知号不能为空"); + } + if(Objects.isNull(payWorkingGroupSubItem.getReceivableAmount())){ + throw new JeroBootException("待确收金额不能为空"); + } + } + + try { + // 编辑保存前再次校验来款项目是否存在 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PayWorkingGroupSubItem::getWorkingGroupId,payWorkingGroupSubItem.getWorkingGroupId()); + queryWrapper.eq(PayWorkingGroupSubItem::getChargeCompanyId,payWorkingGroupSubItem.getChargeCompanyId()); +// queryWrapper.eq(PayWorkingGroupSubItem::getContactsIdOne,payWorkingGroupSubItem.getContactsIdOne()); + PayWorkingGroupSubItem payWorkingGroupSubItemNew = payWorkingGroupSubItemService.getOne(queryWrapper); + // 来款项目存在,并且编辑id与查询不同,则校验不通过 + if(!Objects.isNull(payWorkingGroupSubItemNew) + && !Objects.equals(payWorkingGroupSubItemNew.getId(), workingGroupSubItemId)) { + throw new JeroBootException("工作组成员单位已存在!"); + } + }catch (Exception e){ + log.info("工作组成员-编辑异常",e); + throw new JeroBootException("工作组成员单位已存在!"); + } + // 校验项目是否已关联合同 + PayIncomeContract payIncomeContract = payIncomeContractService.checkPayIncomeContractAssociated(workingGroupSubItemId); + if(!Objects.isNull(payIncomeContract)){ + if(!Objects.equals(payWorkingGroupSubItem.getChargeWay(),payWorkingGroupSubItemOld.getChargeWay())){ + throw new JeroBootException("项目已关联合同,来款方式不可修改!"); + } + if(Objects.equals(payWorkingGroupSubItemOld.getChargeWay(),PayProjectCommon.CHARGE_WAY2) && !Objects.equals(payWorkingGroupSubItemOld.getContractNum(),payWorkingGroupSubItem.getContractNum())){ + throw new JeroBootException("项目已关联合同,合同编号不可修改!"); + } + }else{ + PayIncomeContract payIncomeContractAdd = null; + // 来款方式为合同,校验合同编号 + if(Objects.equals(payWorkingGroupSubItem.getChargeWay(),PayProjectCommon.CHARGE_WAY2)){ + payIncomeContractAdd = payIncomeContractService.setPayIncomeContractAssociated(payWorkingGroupSubItem.getContractNum(),payWorkingGroupSubItem.getChargeCompanyId(), workingGroupSubItemId); + } + if(!Objects.isNull(payIncomeContractAdd)){ + // 合同存在 && 合同状态不为草稿,不为未通过 关联合同 + payIncomeContractService.insertPayIncomeContract(payIncomeContractAdd, workingGroupSubItemId,Integer.parseInt(PayProjectCommon.PROJECT_TYPE2)); + Integer pack = payIncomeContractAdd.getPack(); + if (Objects.equals(pack,PayProjectCommon.PACKAGING1)){ + payWorkingGroupSubItem.setPack(PayProjectCommon.PACKAGING1); + } + }else{ + payWorkingGroupSubItem.setPack(payWorkingGroupSubItemOld.getPack()); + } + // 关联了合同,判断合同是否打包,更新项目打包状态,添加打包 + if(!Objects.isNull(payIncomeContractAdd) && Objects.equals(payIncomeContractAdd.getPack(),PayProjectCommon.PACKAGING1)){ + String masterContactsId = payWorkingGroupSubItemContactsMapper.getMasterContactsId(workingGroupSubItemId); + payPackCompanyProjectService.setPack(payWorkingGroupSubItem.getChargeCompanyId(),masterContactsId,payIncomeContractAdd.getPackYear(), workingGroupSubItemId,PayProjectCommon.PROJECT_TYPE2,payIncomeContractAdd.getPack()); + } + } + LambdaQueryWrapper queryPayWorkingGroupSubItemContacts = new LambdaQueryWrapper<>(); + queryPayWorkingGroupSubItemContacts.eq(PayWorkingGroupSubItemContacts::getWorkingGroupSubId,payWorkingGroupSubItemOld.getId()); + List listPayWorkingGroupSubItemContacts = payWorkingGroupSubItemContactsService.list(queryPayWorkingGroupSubItemContacts); + if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContacts)){ + payWorkingGroupSubItemOld.setPayWorkingGroupSubItemContactsList(listPayWorkingGroupSubItemContacts); + } + setPayWorkingGroupSubItemEdit(payWorkingGroupSubItem,payWorkingGroupSubItemOld); + List listPayWorkingGroupSubItemContactsNew = payWorkingGroupSubItem.getPayWorkingGroupSubItemContactsList(); + // 添加联系人表 + if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItemContactsNew)){ + for (int i = 0; i < listPayWorkingGroupSubItemContactsNew.size(); i++) { + listPayWorkingGroupSubItemContactsNew.get(i).setOrderNum(i+1); + listPayWorkingGroupSubItemContactsNew.get(i).setWorkingGroupId(payWorkingGroupSubItem.getWorkingGroupId()); + listPayWorkingGroupSubItemContactsNew.get(i).setWorkingGroupSubId(workingGroupSubItemId); + } + payWorkingGroupSubItemContactsService.saveBatch(listPayWorkingGroupSubItemContactsNew); + } + payWorkingGroupSubItem.setChargeUse(PayProjectCommon.CHARGE_USE1); + // 变更待确收金额,重新校验状态 + ProjectStatusVO projectStatusVO = projectDetailService.getStatus(workingGroupSubItemId,payWorkingGroupSubItem.getReceivableAmount(),payWorkingGroupSubItem.getNeedInvoice()); + if(!Objects.isNull(projectStatusVO)){ + if(!Objects.isNull(projectStatusVO.getInAccount())){ + payWorkingGroupSubItem.setInAccount(projectStatusVO.getInAccount()); + } + if(!Objects.isNull(projectStatusVO.getMakeInvoice())){ + payWorkingGroupSubItem.setMakeInvoice(projectStatusVO.getMakeInvoice()); + } + if(!Objects.isNull(projectStatusVO.getMail())){ + payWorkingGroupSubItem.setMail(projectStatusVO.getMail()); + } + } + String paymentStatus = payPaymentCheckService.getPaymentStatus(payWorkingGroupSubItem.getReceivableAmount(),payWorkingGroupSubItemOld.getPaidAmount(),payWorkingGroupSubItemOld.getPaymentStatus()); + 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); + payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem); + LambdaUpdateWrapper updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>(); + updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId, workingGroupSubItemId); + // 选择无 + if(Objects.equals(payWorkingGroupSubItem.getChargeWay(),PayProjectCommon.CHARGE_WAY1)){ + //updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getReceivableAmount,null); + updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getContractNum,null); + updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getCharge,null); + updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeNoticeNo,null); + updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeNoticeId,null); + } + // 选择合同 + if(Objects.equals(payWorkingGroupSubItem.getChargeWay(),PayProjectCommon.CHARGE_WAY2)){ + updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getCharge,null); + updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeNoticeNo,null); + updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getChargeNoticeId,null); + } + // 选择收费通知 + if(Objects.equals(payWorkingGroupSubItem.getChargeWay(),PayProjectCommon.CHARGE_WAY3)){ + updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getContractNum,null); + } + payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem); + // 如果有邮寄信息更新邮寄联系人信息 + String mailContactsId = payWorkingGroupSubItem.getMailContactsId(); + payMailBillService.updateContactByProjectId(mailContactsId, workingGroupSubItemId, null); + } + @Override @Transactional(rollbackFor = JeroBootException.class) public void importExcel(HttpServletRequest request) { diff --git a/jero-boot-single-startup/src/main/resources/application-dev.yml b/jero-boot-single-startup/src/main/resources/application-dev.yml index 75ce7650..6921dfde 100644 --- a/jero-boot-single-startup/src/main/resources/application-dev.yml +++ b/jero-boot-single-startup/src/main/resources/application-dev.yml @@ -25,7 +25,8 @@ spring: max-file-size: 50MB max-request-size: 50MB mail: - host: smtp.126.com + host: smtp.qq.com +# host: smtp.126.com # host: smtp.qiye.163.com username: zhangqinlin@syxysoft.com password: Zql0000000 @@ -136,6 +137,10 @@ spring: connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 datasource: master: +# url: jdbc:mysql://10.10.10.44:3306/income_payments_test?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai +# username: root +# password: hzwlsoft.com +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:p6spy:mysql://lijiarao.cn:3306/income_payments_prod?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai username: root password: 704670af746903fa @@ -158,7 +163,7 @@ spring: min-idle: 0 #最小等待连接中的数量,设 0 为没有限制 shutdown-timeout: 100ms # password: hzwlsoft.com - password: 123456 +# password: 123456 # port: 4780 port: 6379