diff --git a/db/23年7月变更.sql b/db/23年7月变更.sql new file mode 100644 index 00000000..580f9d3b --- /dev/null +++ b/db/23年7月变更.sql @@ -0,0 +1,66 @@ +ALTER TABLE pay_working_group_subitem + ADD COLUMN label varchar(50) NULL COMMENT '标签'; + +ALTER TABLE pay_meeting_situation + ADD COLUMN guests_upload_file_flag tinyint NULL COMMENT '嘉宾上传文件标识'; + +create table pay_meeting_guests_file +( + id varchar(36) not null comment 'id', + meeting_id varchar(50) null comment '会议id', + contacts_id varchar(50) null comment '联系人id', + file_id varchar(50) null comment '文件id', + constraint Index_1 + unique (id) +) + comment '会议嘉宾文件表'; + +alter table pay_meeting_guests_file + add primary key (id); + +ALTER TABLE sys_announcement ADD deadline datetime COMMENT '截止时间'; + +CREATE TABLE sys_notice ( + id VARCHAR(50) PRIMARY KEY COMMENT 'id', + notice_name VARCHAR(100) NULL COMMENT '公告名称', + notice_content VARCHAR(300) NULL COMMENT '公告内容', + notice_file VARCHAR(1000) NULL COMMENT '附件', + notice_status INT(1) NULL COMMENT '状态(1-启用,0-禁用)', + create_by VARCHAR(50) NULL COMMENT '创建人', + create_time datetime(0) NULL COMMENT '创建日期', + update_by VARCHAR(50) NULL COMMENT '更新人', + update_time datetime(0) NULL COMMENT '更新日期' +) COMMENT '公告管理表'; + +ALTER TABLE pay_meeting_situation + ADD COLUMN company_address varchar(100) NULL COMMENT '公司地址', + ADD COLUMN company_phone varchar(200) NULL COMMENT '公司电话', + ADD COLUMN opening_bank varchar(50) NULL COMMENT '开户行', + ADD COLUMN bank_account varchar(50) NULL COMMENT '银行账号', + ADD COLUMN duty_code varchar(50) NULL COMMENT '信用代码', + ADD COLUMN link_bank_number varchar(50) NULL COMMENT '联行号'; +ALTER TABLE pay_meeting_situation + ADD COLUMN invoice_project tinyint(4) NULL COMMENT '发票项目'; + + +-- 会议增加按钮 菜单管理模块功能的增加 +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1683388669166919681', '1443470901166039042', '资料状态(嘉宾是否可以在企业端上传)', NULL, NULL, NULL, NULL, 2, 'standardsMeetingSituation:guestsUploadFileFlag', '1', 10.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-07-24 16:08:29', NULL, NULL, 0, 0, '1', 0); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1683387405624451074', '1470954992463327234', '资料状态(嘉宾是否可以在企业端上传)', NULL, NULL, NULL, NULL, 2, 'councilMeetingSituation:guestsUploadFileFlag', '1', 10.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-07-24 16:03:28', NULL, NULL, 0, 0, '1', 0); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1683387007220097026', '1433322232030777345', '资料状态(嘉宾是否可以在企业端上传)', NULL, NULL, NULL, NULL, 2, 'internalMeetingSituation:guestsUploadFileFlag', '1', 10.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-07-24 16:01:53', NULL, NULL, 0, 0, '1', 0); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1683386847723298817', '1430828460107730946', '资料状态(嘉宾是否可以在企业端上传)', NULL, NULL, NULL, NULL, 2, 'workGroupMeetingSituation:guestsUploadFileFlag', '1', 10.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-07-24 16:01:15', NULL, NULL, 0, 0, '1', 0); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1683386691921682434', '1443461591480487938', '资料状态(嘉宾是否可以在企业端上传)', NULL, NULL, NULL, NULL, 2, 'committeeMeetingSituation:guestsUploadFileFlag', '1', 9.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-07-24 16:00:38', NULL, NULL, 0, 0, '1', 0); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1683386401755537409', '1443460205023940610', '资料状态(嘉宾是否可以在企业端上传)', NULL, NULL, NULL, NULL, 2, 'otherMeetingSituation:guestsUploadFileFlag', '1', 9.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-07-24 15:59:29', NULL, NULL, 0, 0, '1', 0); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1683385996128591874', '1431167539278086146', '设置标签', '', NULL, NULL, NULL, 2, 'workingGroupMember:setLabel', '1', 11.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-07-24 15:57:52', NULL, NULL, 0, 0, '1', 0); + +-- 公告管理 增加菜单 +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1679782926731005953', '1679684027710234625', '删除', NULL, NULL, NULL, NULL, 2, 'sysNotice:deleteById', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-07-14 17:20:33', 'LKGLZ', '2023-07-14 17:25:35', 0, 0, '1', 0); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1679782858711977986', '1679684027710234625', '编辑', NULL, NULL, NULL, NULL, 2, 'sysNotice:edit', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-07-14 17:20:17', 'LKGLZ', '2023-07-14 17:25:29', 0, 0, '1', 0); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1679782784619597825', '1679684027710234625', '新增', NULL, NULL, NULL, NULL, 2, 'sysNotice:add', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-07-14 17:19:59', 'LKGLZ', '2023-07-14 17:25:23', 0, 0, '1', 0); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1679782718844522497', '1679684027710234625', '查询', '', NULL, NULL, NULL, 2, 'sysNotice:pageList', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-07-14 17:19:44', 'LKGLZ', '2023-07-14 17:25:16', 0, 0, '1', 0); +INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1679684027710234625', '5c8042bd6c601270b2bbd9b20bccc68b', '公告管理', '/isystem/noticeList', 'modules/notice/SysNoticeList', NULL, NULL, 1, NULL, '1', 3.00, 0, NULL, 1, 0, 0, 0, NULL, 'LKGLZ', '2023-07-14 10:47:34', NULL, NULL, 0, 0, '1', 0); + +ALTER TABLE pay_meeting ADD file_ids varchar(1000) COMMENT '会议文件'; + +INSERT INTO `sys_dict` (`id`, `dict_name`, `dict_code`, `description`, `del_flag`, `create_by`, `create_time`, `update_by`, `update_time`, `type`) VALUES ('1683411632557694977', '缴费类别', 'invoice_project', '', 0, 'LKGLZ', '2023-07-24 17:39:44', NULL, NULL, 0); +INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('1683411695635832833', '1683411632557694977', '会议费', '1', '', 1.00, 1, 'LKGLZ', '2023-07-24 17:39:59', NULL, NULL); +INSERT INTO `sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ('1683411736203141122', '1683411632557694977', '培训费', '2', '', 2.00, 1, 'LKGLZ', '2023-07-24 17:40:09', NULL, NULL); diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/AutoPoiDictConfig.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/AutoPoiDictConfig.java index 52608ae0..2b29b1ee 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/AutoPoiDictConfig.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/config/AutoPoiDictConfig.java @@ -57,7 +57,9 @@ public class AutoPoiDictConfig implements AutoPoiDictServiceI { } } if (dictReplaces != null && dictReplaces.size() != 0) { - log.info("---AutoPoi--Get_DB_Dict------"+ dictReplaces.toString()); + if (oConvertUtils.isEmpty(dicTable)) { + log.info("---AutoPoi--Get_DB_Dict------"+ dictReplaces.toString()); + } return dictReplaces.toArray(new String[dictReplaces.size()]); } return null; 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 13139b02..ab8cc735 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 @@ -189,6 +189,9 @@ public class ShiroConfig { filterChainDefinitionMap.put("/company/payContactsManagement/addMeeting","anon"); filterChainDefinitionMap.put("/company/payContactsManagement/queryByIdMeeting","anon"); filterChainDefinitionMap.put("/company/payContactsManagement/queryWXByCompany","anon"); + //无权限直接编辑企业发票信息 + filterChainDefinitionMap.put("/company/payCompanyManagement/updateInvoice","anon"); + //企业端注册个人 filterChainDefinitionMap.put("/home/registerSelf", "anon"); // 判断当前企业是否是内部企业 diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/dto/SendMessageDTO.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/dto/SendMessageDTO.java index 178f2fda..9a07328d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/dto/SendMessageDTO.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/dto/SendMessageDTO.java @@ -1,5 +1,6 @@ package com.jero.common.dto; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @@ -53,4 +54,9 @@ public class SendMessageDTO implements Serializable { * 文件名集合(邮箱发送附件) */ private List listFile; + /** + * 是否发送邮件 + */ + @ApiModelProperty(value = "是否发送邮件") + private Integer sendEmailFlag; } 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 841c1525..e517f30c 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 @@ -5,7 +5,7 @@ + select contact_id + from pay_file_email_remind_record + where file_id=#{fileId,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/data/service/impl/PayFileEmailRemindRecordService.java b/jero-boot-incoming-payment/src/main/java/com/jero/data/service/impl/PayFileEmailRemindRecordService.java new file mode 100644 index 00000000..802ad58d --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/data/service/impl/PayFileEmailRemindRecordService.java @@ -0,0 +1,29 @@ +package com.jero.data.service.impl; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.data.entity.PayFileEmailRemindRecord; +import com.jero.data.mapper.PayFileEmailRemindRecordMapper; +/** + * + *@author liJiaRao + *@date 2023-07-12 10:52 + */ +@Service +public class PayFileEmailRemindRecordService extends ServiceImpl { + + public void insertByFileList(String fileIds, String contactId) { + String[] fileIdList = fileIds.split(","); + for (String fileId : fileIdList) { + PayFileEmailRemindRecord payFileEmailRemindRecord = new PayFileEmailRemindRecord(); + payFileEmailRemindRecord.setFileId(fileId); + payFileEmailRemindRecord.setContactId(contactId); + this.save(payFileEmailRemindRecord); + } + } + + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/controller/PayMailBillController.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/controller/PayMailBillController.java index 008d1b0a..f916a653 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/controller/PayMailBillController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/controller/PayMailBillController.java @@ -164,6 +164,49 @@ public class PayMailBillController extends JeroController contactsSearch(PayMailBillSearch payMailBillSearch, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + Page page = new Page<>(pageNo, pageSize); + if (ObjectUtil.isNotEmpty(payMailBillSearch.getStartTime()) && ObjectUtil.isNotEmpty(payMailBillSearch.getEndTime())) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(payMailBillSearch.getEndTime()); + calendar.add(Calendar.HOUR, 23);//时 + calendar.add(Calendar.MINUTE, 59);//时 + calendar.add(Calendar.SECOND, 59);//秒 + queryWrapper.ge("sendDate", payMailBillSearch.getStartTime()); + queryWrapper.le("sendDate", calendar.getTime()); + } else if (ObjectUtil.isNotEmpty(payMailBillSearch.getStartTime())) { + queryWrapper.ge("sendDate", payMailBillSearch.getStartTime()); + } else if (ObjectUtil.isNotEmpty(payMailBillSearch.getEndTime())) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(payMailBillSearch.getEndTime()); + calendar.add(Calendar.HOUR, 23);//时 + calendar.add(Calendar.MINUTE, 59);//时 + calendar.add(Calendar.SECOND, 59);//秒 + queryWrapper.le("sendDate", calendar.getTime()); + } + if (ObjectUtil.isNotEmpty(payMailBillSearch.getProjectName())) { + queryWrapper.like("project_name", oConvertUtils.replaceAllPercent(payMailBillSearch.getProjectName())); + } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + IPage pageList = payMailBillService.contactsSearchPageList(page, sysUser.getId(), queryWrapper); + getMobile(pageList.getRecords()); + return Result.OK(pageList); + } + /** * 邮寄票据-修改 * diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/mapper/PayMailBillMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/mapper/PayMailBillMapper.java index 68cf753d..def5eaab 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/mapper/PayMailBillMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/mapper/PayMailBillMapper.java @@ -7,12 +7,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.company.entity.PayContactsManagement; -import com.jero.mail.PayMailBillVO; +import com.jero.mail.vo.PayMailBillVO; import com.jero.mail.entity.PayMailBill; import com.jero.mail.entity.PayMailBillSearch; import org.apache.ibatis.annotations.Param; -import java.math.BigDecimal; import java.util.List; /** @@ -78,4 +77,6 @@ public interface PayMailBillMapper extends BaseMapper { Integer updateTax(@Param("id") String id); Integer updateNoTaxAmount(@Param("id") String id); + + IPage contactsSearchPageList(Page page, @Param("userId") String userId, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/mapper/xml/PayMailBillMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/mail/mapper/xml/PayMailBillMapper.xml index a4046a97..9df722ba 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/mapper/xml/PayMailBillMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/mapper/xml/PayMailBillMapper.xml @@ -39,6 +39,8 @@ + + - select pmb.id as id,pmbp.id as bmpId,pmb.project_name,pmbp.invoice_amount,pmb.bill_no,pmb.bill_date,pmbp.remark,pmbp.no_tax_amount,pmbp.tax,pmbp.tax_rate from pay_mail_bill pmb inner JOIN pay_mail_bill_project pmbp on pmb.id = pmbp.bill_id @@ -248,4 +250,181 @@ set pmb.no_tax_amount = (select sum(pmbp.no_tax_amount) from pay_mail_bill_project pmbp where bill_id = #{id}) where id = #{id} + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/IPayMailBillService.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/IPayMailBillService.java index 5a1b6b92..f7fdd5ed 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/IPayMailBillService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/IPayMailBillService.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.company.entity.PayContactsManagement; -import com.jero.mail.PayMailBillVO; +import com.jero.mail.vo.PayMailBillVO; import com.jero.mail.entity.PayMailBill; import com.jero.member.enums.StandardsTypeEnum; @@ -95,4 +95,6 @@ public interface IPayMailBillService extends IService { */ void updateContactByProjectId(String ContactId,String projectId); + IPage contactsSearchPageList(Page page, String userId, QueryWrapper queryWrapper); + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java index 0998b977..75a78a92 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java @@ -25,7 +25,7 @@ import com.jero.company.service.IPayCompanyManagementService; import com.jero.company.service.IPayContactsManagementService; import com.jero.config.StaticConfig; import com.jero.contract.common.PayIncomeContractCommon; -import com.jero.mail.PayMailBillVO; +import com.jero.mail.vo.PayMailBillVO; import com.jero.mail.entity.BillingInfo; import com.jero.mail.entity.PayMailBill; import com.jero.mail.entity.PayMailBillProject; @@ -585,6 +585,11 @@ public class PayMailBillServiceImpl extends ServiceImpl contactsSearchPageList(Page page, String userId, QueryWrapper queryWrapper) { + return payMailBillMapper.contactsSearchPageList(page,userId,queryWrapper); + } + //校验不同项目是否属于同一个公司,开票金额是否大于当前未开票金额,企业名称是否审核 private String checkCompanyProject(List bmpList) { diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/vo/MailBillProjectVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/vo/MailBillProjectVO.java new file mode 100644 index 00000000..0bfdfd3c --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/vo/MailBillProjectVO.java @@ -0,0 +1,49 @@ +package com.jero.mail.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.jero.common.aspect.annotation.Dict; +import com.jero.mail.entity.PayMailBill; +import com.jero.mail.entity.PayMailBillProject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import javax.validation.constraints.DecimalMax; +import java.math.BigDecimal; +import java.util.List; + + +@Data +public class MailBillProjectVO extends PayMailBill { + /** + * 邮寄票据关联项目表 + */ + @TableField(exist = false) + List bmpList; + + /**邮寄票据关联项目表id*/ + @TableField(exist = false) + @ApiModelProperty(value = "bmpId") + private String bmpId; + + /**税率*/ + @ApiModelProperty(value = "税率") + @JsonFormat(shape = JsonFormat.Shape.STRING) + @Dict(dicCode = "rate") + private BigDecimal taxRate; + + /**税额*/ + @Excel(name = "税额", width = 15) + @ApiModelProperty(value = "税额") + @DecimalMax(value = "9999999999.99",message = "税额") + @JsonFormat(shape = JsonFormat.Shape.STRING) + private BigDecimal tax; + + /**未税金额*/ + @Excel(name = "未税金额", width = 15) + @ApiModelProperty(value = "未税金额") + @DecimalMax(value = "9999999999.99",message = "未税金额") + @JsonFormat(shape = JsonFormat.Shape.STRING) + private BigDecimal noTaxAmount; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/PayMailBillVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/vo/PayMailBillVO.java similarity index 98% rename from jero-boot-incoming-payment/src/main/java/com/jero/mail/PayMailBillVO.java rename to jero-boot-incoming-payment/src/main/java/com/jero/mail/vo/PayMailBillVO.java index c2446906..14719b54 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/PayMailBillVO.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/vo/PayMailBillVO.java @@ -1,4 +1,4 @@ -package com.jero.mail; +package com.jero.mail.vo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingController.java index 18724889..b346d7fc 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingController.java @@ -11,7 +11,6 @@ import com.jero.common.system.vo.LoginUser; import com.jero.common.util.AuthenticationUtils; import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; -import com.jero.common.util.oConvertUtils; import com.jero.company.service.IPayContactsManagementService; import com.jero.data.service.IPayCaseCommitteeService; import com.jero.meeting.common.MeetingCommon; @@ -36,7 +35,6 @@ import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.*; -import java.util.stream.Collectors; /** @@ -205,7 +203,7 @@ public class CommitteeMeetingController extends JeroController uploadFile(@RequestBody UploadFileVO uploadFileVO) { - List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.COMMITTEE_MEETING_INT); + List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.COMMITTEE_MEETING_INT, false); return Result.OK("上传资料成功!",strings); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingSituationController.java index 565b7d7d..f596fe99 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingSituationController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CommitteeMeetingSituationController.java @@ -233,4 +233,19 @@ public class CommitteeMeetingSituationController extends JeroController setGuestsUploadFile(@RequestBody SetGuestsUploadFileVO setGuestsUploadFileVO) { + ValidUtil.validate(setGuestsUploadFileVO); + payMeetingSituationService.setGuestsUploadFile(setGuestsUploadFileVO,MEETING_TYPE); + return Result.OK("设置嘉宾上传文件成功!"); + } + + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CouncilMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CouncilMeetingController.java index 1783dd36..7237062d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CouncilMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CouncilMeetingController.java @@ -190,7 +190,7 @@ public class CouncilMeetingController extends JeroController uploadFile(@RequestBody UploadFileVO uploadFileVO) { - List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.COUNCIL_MEETING_INT); + List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.COUNCIL_MEETING_INT, false); return Result.OK("上传资料成功!",strings); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CouncilMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CouncilMeetingSituationController.java index c44a32d4..5b6874bf 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CouncilMeetingSituationController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/CouncilMeetingSituationController.java @@ -17,6 +17,7 @@ import com.jero.meeting.service.IPayMeetingSituationService; import com.jero.meeting.vo.CheckVO; import com.jero.meeting.vo.MergePayBillVO; import com.jero.meeting.vo.PayMeetingSituationVO; +import com.jero.meeting.vo.SetGuestsUploadFileVO; import com.jero.project.common.PayProjectCommon; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -211,4 +212,16 @@ public class CouncilMeetingSituationController extends JeroController setGuestsUploadFile(@RequestBody SetGuestsUploadFileVO setGuestsUploadFileVO) { + ValidUtil.validate(setGuestsUploadFileVO); + payMeetingSituationService.setGuestsUploadFile(setGuestsUploadFileVO,MEETING_TYPE); + return Result.OK("设置嘉宾上传文件成功!"); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/InternalMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/InternalMeetingController.java index d291cc4f..7195a689 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/InternalMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/InternalMeetingController.java @@ -10,7 +10,6 @@ import com.jero.common.system.vo.LoginUser; import com.jero.common.util.AuthenticationUtils; import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; -import com.jero.common.util.oConvertUtils; import com.jero.company.service.IPayContactsManagementService; import com.jero.data.service.IPayCaseCommitteeService; import com.jero.meeting.common.MeetingCommon; @@ -35,7 +34,6 @@ import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.*; -import java.util.stream.Collectors; /** @@ -203,7 +201,7 @@ public class InternalMeetingController extends JeroController uploadFile(@RequestBody UploadFileVO uploadFileVO) { - List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.INTERNATIONAL_MEETING_INT); + List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.INTERNATIONAL_MEETING_INT, false); return Result.OK("上传资料成功!",strings); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/InternalMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/InternalMeetingSituationController.java index 469e2918..400e78de 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/InternalMeetingSituationController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/InternalMeetingSituationController.java @@ -237,4 +237,17 @@ public class InternalMeetingSituationController extends JeroController checkMember(String companyName) { return Result.OK(payMeetingSituationService.checkMemberCompany(companyName)); } + + /** + * 设置嘉宾上传文件 + */ + @RequiresPermissions("internalMeetingSituation: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("设置嘉宾上传文件成功!"); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/OtherMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/OtherMeetingController.java index f2f17688..f38a86c3 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/OtherMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/OtherMeetingController.java @@ -10,7 +10,6 @@ import com.jero.common.system.vo.LoginUser; import com.jero.common.util.AuthenticationUtils; import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; -import com.jero.common.util.oConvertUtils; import com.jero.company.service.IPayContactsManagementService; import com.jero.data.service.IPayCaseCommitteeService; import com.jero.meeting.common.MeetingCommon; @@ -35,7 +34,6 @@ import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.*; -import java.util.stream.Collectors; /** @@ -203,7 +201,7 @@ public class OtherMeetingController extends JeroController uploadFile(@RequestBody UploadFileVO uploadFileVO) { - List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.OTHER_MEETING_INT); + List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.OTHER_MEETING_INT, false); return Result.OK("上传资料成功!",strings); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/OtherMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/OtherMeetingSituationController.java index bd398fa0..c92c2c3c 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/OtherMeetingSituationController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/OtherMeetingSituationController.java @@ -214,6 +214,17 @@ public class OtherMeetingSituationController extends JeroController setGuestsUploadFile(@RequestBody SetGuestsUploadFileVO setGuestsUploadFileVO) { + ValidUtil.validate(setGuestsUploadFileVO); + payMeetingSituationService.setGuestsUploadFile(setGuestsUploadFileVO,MEETING_TYPE); + return Result.OK("设置嘉宾上传文件成功!"); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java index facecc16..3700a76e 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java @@ -9,7 +9,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.date.DateUtil; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.api.vo.Result; import com.jero.common.constant.CommonConstant; @@ -26,8 +25,8 @@ import com.jero.data.service.IPayCaseCommitteeService; import com.jero.data.service.IPayCaseCommitteeSubitemService; import com.jero.data.service.IPayCaseCouncilSubitemService; import com.jero.meeting.common.MeetingCommon; -import com.jero.meeting.common.MeetingSubitemCommon; import com.jero.meeting.entity.*; +import com.jero.meeting.mapper.PayMeetingGuestsFileMapper; import com.jero.meeting.service.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -39,7 +38,6 @@ import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.system.volid.group.UpdateGroup; import com.jero.project.entity.PayWorkingGroup; -import com.jero.project.entity.PayWorkingGroupSubItem; import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.util.QrcodeUtil; @@ -51,7 +49,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -104,6 +101,8 @@ public class PayMeetingController extends JeroController uploadFile(@RequestBody UploadFileVO uploadFileVO) { - List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.INTERNATIONAL_MEETING_INT); + List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.INTERNATIONAL_MEETING_INT, false); return Result.OK("上传资料成功!",strings); } @@ -562,12 +561,6 @@ public class PayMeetingController extends JeroController userDownloadByApplet(@PathVariable String id, @PathVariable String meetingId, HttpServletResponse response, String type) { + LoginUser sysUser =(LoginUser) SecurityUtils.getSubject().getPrincipal(); + String sysUserId = sysUser.getId(); + PayMeeting payMeeting = payMeetingService.getById(meetingId); + if(ObjectUtils.isEmpty(payMeeting)){ + throw new JeroBootException("会议不存在.."); + } + Integer meetingType = payMeeting.getMeetingType(); + //如果是分标委会议或理事会会议,判断是否为成员 + boolean isSubItem = false; + if (meetingType.equals(MeetingCommon.COMMITTEE_MEETING_INT)) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayCaseCommitteeSubitem::getCommitteeId, payMeeting.getCaseCommitteeId()); + wrapper.eq(PayCaseCommitteeSubitem::getContactsId, sysUserId); + + int count = payCaseCommitteeSubitemService.count(wrapper); + if (count > 0) { + isSubItem = true; + } + } else if (meetingType.equals(MeetingCommon.COUNCIL_MEETING_INT)) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayCaseCouncilSubitem::getCouncilId, payMeeting.getCouncilId()); + wrapper.eq(PayCaseCouncilSubitem::getContactsId, sysUserId); + int count = payCaseCouncilSubitemService.count(wrapper); + if (count > 0) { + isSubItem = true; + } + } + String meetingMinute = payMeeting.getMeetingMinute(); + String meetingData = payMeeting.getMeetingData(); + List fileList = new ArrayList<>(); + if(StringUtils.isNotBlank(meetingMinute)) { + fileList.addAll(Arrays.asList(meetingMinute.split(","))); + } + if(StringUtils.isNotBlank(meetingData)) { + fileList.addAll(Arrays.asList(meetingData.split(","))); + } + if(!fileList.contains(id)){ + throw new JeroBootException("会议无此文件.."); + } + BigDecimal meetingCosts = payMeeting.getMeetingCosts(); + //先判断非成员 + if (!isSubItem){ + //会议金额等于0并且是工作组会议(工作组会议金额为0时可以下载) + if (meetingCosts.compareTo(BigDecimal.ZERO) == 0 && meetingType.equals(MeetingCommon.WORKING_GROUP_MEETING_INT)){ + + }else + + //在判断会议金额是否大于0 + if (meetingCosts.compareTo(BigDecimal.ZERO) > 0){ + QueryWrapper queryWrapper1 = new QueryWrapper<>(); + queryWrapper1.eq("meeting_id", meetingId); + queryWrapper1.eq("company_contact_id", sysUserId); + PayMeetingSituation meetingSituation = payMeetingSituationService.getOne(queryWrapper1); + if (ObjectUtils.isEmpty(meetingSituation)) { + throw new JeroBootException("未报名会议。"); + } + } + } + return Result.OK(); + + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingSituationController.java index 08541d35..0b745288 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingSituationController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingSituationController.java @@ -23,6 +23,7 @@ import com.jero.company.service.IPayCompanyManagementService; import com.jero.company.service.IPayContactsManagementService; import com.jero.meeting.common.MeetingCommon; import com.jero.meeting.entity.PayMeeting; +import com.jero.meeting.entity.PayMeetingGuestsFile; import com.jero.meeting.entity.PayMeetingSituation; import com.jero.meeting.service.IPayMeetingService; import com.jero.meeting.service.IPayMeetingSituationService; @@ -150,6 +151,17 @@ public class PayMeetingSituationController extends JeroController contactsDelete(@RequestParam(name = "id") String id) { + payMeetingSituationService.deleteById(id); + return Result.OK("删除成功!"); + } + /** * 批量删除 */ @@ -162,6 +174,17 @@ public class PayMeetingSituationController extends JeroController contactsEdit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) { + payMeetingSituationService.editById(payMeetingSituationVO,MEETING_TYPE); + return Result.OK("编辑成功!"); + } + /** * 通过id查询 */ @@ -376,4 +399,39 @@ public class PayMeetingSituationController extends JeroController guestsUploadFile(@RequestBody GuestsUploadFileVO guestsUploadFileVO) { + ValidUtil.validate(guestsUploadFileVO); + payMeetingSituationService.guestsUploadFile(guestsUploadFileVO); + return Result.OK("上传文件成功!"); + } + + /** + * 嘉宾上传文件列表 + */ + @AutoLog(value = "嘉宾上传文件列表") + @ApiOperation(value = "嘉宾上传文件", notes = "嘉宾上传文件") + @PostMapping(value = "/guestsUploadFileList") + public Result> guestsUploadFileList(@RequestBody GuestsUploadFileVO guestsUploadFileVO) { + List payMeetingGuestsFiles = payMeetingSituationService.guestsUploadFileList(guestsUploadFileVO); + return Result.OK(payMeetingGuestsFiles); + } + + /** + * 嘉宾删除文件 + */ + @AutoLog(value = "嘉宾删除文件") + @ApiOperation(value = "嘉宾删除文件", notes = "嘉宾删除文件") + @PostMapping(value = "/guestsDeleteFile") + public Result guestsDeleteFile(@RequestBody GuestsUploadFileVO guestsUploadFileVO) { + ValidUtil.validate(guestsUploadFileVO); + payMeetingSituationService.guestsDeleteFile(guestsUploadFileVO); + return Result.OK("删除文件成功!"); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/StandardsMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/StandardsMeetingController.java index 7ed1c63e..fe66ff2b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/StandardsMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/StandardsMeetingController.java @@ -1,25 +1,21 @@ package com.jero.meeting.controller; -import com.alibaba.fastjson.JSONObject; 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.system.api.ISysBaseAPI; import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.AuthenticationUtils; import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; -import com.jero.common.util.oConvertUtils; import com.jero.company.service.IPayContactsManagementService; import com.jero.data.service.IPayCaseCommitteeService; import com.jero.meeting.common.MeetingCommon; import com.jero.meeting.entity.PayMeeting; import com.jero.meeting.entity.PayMeetingHotelContacts; import com.jero.meeting.entity.PayMeetingStandard; -import com.jero.meeting.entity.Question; import com.jero.meeting.service.IPayMeetingHotelContactsService; import com.jero.meeting.service.IPayMeetingService; import com.jero.meeting.service.IPayMeetingStandardService; @@ -274,7 +270,7 @@ public class StandardsMeetingController extends JeroController uploadFile(@RequestBody UploadFileVO uploadFileVO) { - List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.STANDARD_MEETING_INT); + List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.STANDARD_MEETING_INT, false); return Result.OK("上传资料成功!",strings); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/StandardsMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/StandardsMeetingSituationController.java index cdfb15b8..fb2148ad 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/StandardsMeetingSituationController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/StandardsMeetingSituationController.java @@ -214,5 +214,16 @@ public class StandardsMeetingSituationController extends JeroController setGuestsUploadFile(@RequestBody SetGuestsUploadFileVO setGuestsUploadFileVO) { + ValidUtil.validate(setGuestsUploadFileVO); + payMeetingSituationService.setGuestsUploadFile(setGuestsUploadFileVO,MEETING_TYPE); + return Result.OK("设置嘉宾上传文件成功!"); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/WorkGroupMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/WorkGroupMeetingController.java index 96358c43..8cb8f75c 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/WorkGroupMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/WorkGroupMeetingController.java @@ -1,26 +1,17 @@ package com.jero.meeting.controller; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; 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.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.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.AuthenticationUtils; import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; -import com.jero.common.util.oConvertUtils; import com.jero.company.service.IPayContactsManagementService; -import com.jero.data.entity.PayCaseCommittee; import com.jero.data.service.IPayCaseCommitteeService; import com.jero.meeting.common.MeetingCommon; import com.jero.meeting.entity.PayMeeting; @@ -30,20 +21,13 @@ 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.meeting.vo.excel.*; -import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.system.volid.group.UpdateGroup; import com.jero.project.entity.PayWorkingGroup; import com.jero.project.service.IPayWorkingGroupService; -import com.jero.standards.xuanguan.stablecrosstraining.entity.StableCrossTraining; -import com.jero.util.QrcodeUtil; import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; 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.beans.BeanUtils; import org.springframework.web.bind.annotation.*; @@ -52,7 +36,6 @@ import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.*; -import java.util.stream.Collectors; /** @@ -225,7 +208,7 @@ public class WorkGroupMeetingController extends JeroController uploadFile(@RequestBody UploadFileVO uploadFileVO) { - List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.WORKING_GROUP_MEETING_INT); + List strings = payMeetingService.uploadFileSendMsg(uploadFileVO, MeetingCommon.WORKING_GROUP_MEETING_INT, false); return Result.OK("上传资料成功!",strings); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/WorkGroupMeetingSituationController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/WorkGroupMeetingSituationController.java index 1ceb4e37..f359b550 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/WorkGroupMeetingSituationController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/WorkGroupMeetingSituationController.java @@ -215,5 +215,16 @@ public class WorkGroupMeetingSituationController extends JeroController setGuestsUploadFile(@RequestBody SetGuestsUploadFileVO setGuestsUploadFileVO) { + ValidUtil.validate(setGuestsUploadFileVO); + payMeetingSituationService.setGuestsUploadFile(setGuestsUploadFileVO,MEETING_TYPE); + return Result.OK("设置嘉宾上传文件成功!"); + } } 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 1413c8db..51fa73f0 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 @@ -255,6 +255,10 @@ public class PayMeeting implements Serializable { @ApiModelProperty(value = "会议通知文件") private String meetingFiles; + /**会议通知文件*/ + @ApiModelProperty(value = "会议文件") + private String fileIds; + /**会议资料*/ @ApiModelProperty(value = "会议资料") private String meetingData; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingGuestsFile.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingGuestsFile.java new file mode 100644 index 00000000..0fc80619 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingGuestsFile.java @@ -0,0 +1,66 @@ +package com.jero.meeting.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.util.Date; +import lombok.Data; + +/** + * + *@author liJiaRao + *@date 2023-07-13 10:35 + */ + +/** + * 会议嘉宾文件表 + */ +@ApiModel(description = "会议嘉宾文件表") +@Data +@TableName(value = "pay_meeting_guests_file") +public class PayMeetingGuestsFile { + /** + * id + */ + @TableId(value = "id", type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private String id; + + /** + * 会议id + */ + @TableField(value = "meeting_id") + @ApiModelProperty(value = "会议id") + private String meetingId; + + /** + * 联系人id + */ + @TableField(value = "contacts_id") + @ApiModelProperty(value = "联系人id") + private String contactsId; + + /** + * 文件id + */ + @TableField(value = "file_id") + @ApiModelProperty(value = "文件id") + private String fileId; + + /** + * 创建人 + */ + @TableField(value = "create_by") + @ApiModelProperty(value = "创建人") + private String createBy; + + /** + * 创建日期 + */ + @TableField(value = "create_time") + @ApiModelProperty(value = "创建日期") + private Date createTime; +} \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java index 20c255db..a0267363 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingSituation.java @@ -4,6 +4,7 @@ import java.io.Serializable; import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.*; +import com.jero.company.vo.UpdateInvoicePram; import com.jero.meeting.valid.group.CommonPeople; import com.jero.meeting.valid.group.Guest; import lombok.Data; @@ -280,6 +281,7 @@ public class PayMeetingSituation implements Serializable { /**缴费方式*/ @Excel(name = "缴费方式", width = 15,dicCode = "meeting_pay_type") + @TableField(updateStrategy = FieldStrategy.IGNORED) @ApiModelProperty(value = "缴费方式") @NotNull(message = "缴费方式不能为空",groups = CommonPeople.class) @Dict(dicCode = "meeting_pay_type") @@ -514,4 +516,51 @@ public class PayMeetingSituation implements Serializable { @ApiModelProperty(value = "未税金额") @JsonFormat(shape = JsonFormat.Shape.STRING) private BigDecimal noTaxAmount; + + @ApiModelProperty(value = "嘉宾上传文件标识") + private Integer guestsUploadFileFlag; + + /**信用代码*/ + @ApiModelProperty(value = "信用代码") + @TableField(updateStrategy = FieldStrategy.IGNORED) + @NotEmpty(message = "信用代码不能为空",groups = {UpdateInvoicePram.needInvoice_1.class, UpdateInvoicePram.needInvoice_2.class}) + @Size(max = 18, message = "信用代码长度不能大于18个字符",groups = {UpdateInvoicePram.needInvoice_1.class,UpdateInvoicePram.needInvoice_2.class}) + @Pattern(regexp = "^([0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}|[1-9]\\d{14})$",message = "信用代码格式错误",groups = {UpdateInvoicePram.needInvoice_1.class,UpdateInvoicePram.needInvoice_2.class}) + private String dutyCode; + /**公司地址*/ + @ApiModelProperty(value = "公司地址") + @TableField(updateStrategy = FieldStrategy.IGNORED) + @NotEmpty(message = "公司地址不能为空",groups = UpdateInvoicePram.needInvoice_2.class) + @Size(max = 50, message = "公司地址长度不能大于50个字符",groups = UpdateInvoicePram.needInvoice_2.class) + private String companyAddress; + /**公司电话*/ + @ApiModelProperty(value = "公司电话") + @TableField(updateStrategy = FieldStrategy.IGNORED) + @Size(max = 15, message = "公司电话长度不能大于15个字符",groups = UpdateInvoicePram.needInvoice_2.class) + @Pattern(regexp = "^([0-9-]+)$",message = "公司电话格式错误",groups = UpdateInvoicePram.needInvoice_2.class) + private String companyPhone; + /**开户行*/ + @ApiModelProperty(value = "开户行") + @TableField(updateStrategy = FieldStrategy.IGNORED) + @NotEmpty(message = "开户行不能为空",groups = UpdateInvoicePram.needInvoice_2.class) + @Size(max = 50, message = "开户行长度不能大于50个字符",groups = UpdateInvoicePram.needInvoice_2.class) + private String openingBank; + /**银行账号*/ + @ApiModelProperty(value = "银行账号") + @TableField(updateStrategy = FieldStrategy.IGNORED) + @NotEmpty(message = "银行账号不能为空",groups = UpdateInvoicePram.needInvoice_2.class) + @Size(max = 50, message = "银行账号长度不能大于50个字符",groups = UpdateInvoicePram.needInvoice_2.class) + private String bankAccount; + /**联行号*/ + @ApiModelProperty(value = "联行号") + @TableField(updateStrategy = FieldStrategy.IGNORED) + @NotEmpty(message = "联行号不能为空",groups = UpdateInvoicePram.needInvoice_2.class) + private String linkBankNumber; + + /**发票项目*/ + @Dict(dicCode = "invoice_project") + @TableField(updateStrategy = FieldStrategy.IGNORED) + @ApiModelProperty(value = "发票项目") + private Integer invoiceProject; + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingGuestsFileMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingGuestsFileMapper.java new file mode 100644 index 00000000..4c2ff03a --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingGuestsFileMapper.java @@ -0,0 +1,11 @@ +package com.jero.meeting.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.meeting.entity.PayMeetingGuestsFile; + +/** + * @author liJiaRao + * @date 2023-07-13 10:35 + */ +public interface PayMeetingGuestsFileMapper extends BaseMapper { +} \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingGuestsFileMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingGuestsFileMapper.xml new file mode 100644 index 00000000..431f180f --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingGuestsFileMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + id, meeting_id, contacts_id, file_id, create_by, create_time + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingService.java index ce0accca..b75fb1aa 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingService.java @@ -73,7 +73,7 @@ public interface IPayMeetingService extends IService { IPage queryMeetingSummary(MeetingSummary meetingSummary, Integer pageNo, Integer pageSize, HttpServletRequest req); - List uploadFileSendMsg(UploadFileVO uploadFileVO, Integer meetingCommon); + List uploadFileSendMsg(UploadFileVO uploadFileVO, Integer meetingCommon, Boolean isGuestsUpload); /** * 上传会议纪要 diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java index 56624685..61129e67 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; import com.jero.meeting.entity.PayMeeting; +import com.jero.meeting.entity.PayMeetingGuestsFile; import com.jero.meeting.entity.PayMeetingSituation; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.meeting.vo.*; @@ -93,4 +94,12 @@ public interface IPayMeetingSituationService extends IService guestsUploadFileList(GuestsUploadFileVO guestsUploadFileVO); + + void guestsDeleteFile(GuestsUploadFileVO guestsUploadFileVO); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/PayMeetingGuestsFileService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/PayMeetingGuestsFileService.java new file mode 100644 index 00000000..12befb5c --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/PayMeetingGuestsFileService.java @@ -0,0 +1,17 @@ +package com.jero.meeting.service; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.meeting.entity.PayMeetingGuestsFile; +import com.jero.meeting.mapper.PayMeetingGuestsFileMapper; +/** + * + *@author liJiaRao + *@date 2023-07-13 10:33 + */ +@Service +public class PayMeetingGuestsFileService extends ServiceImpl { + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java index c4b209de..dfb6ac48 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.constant.CommonConstant; import com.jero.common.dto.SendMessageDTO; import com.jero.common.enums.CompanyMessageEnums; import com.jero.common.exception.JeroBootException; @@ -36,6 +37,7 @@ import com.jero.meeting.common.MeetingCommon; import com.jero.meeting.common.MeetingSubitemCommon; import com.jero.meeting.entity.*; import com.jero.meeting.mapper.PayMeetingContactsMapper; +import com.jero.meeting.mapper.PayMeetingGuestsFileMapper; import com.jero.meeting.mapper.PayMeetingMapper; import com.jero.meeting.service.*; import com.jero.meeting.valid.group.CaseCommitteeMeeting; @@ -131,6 +133,8 @@ public class PayMeetingServiceImpl extends ServiceImpl meetingContactsList = payMeetingVO.getMeetingContactsList(); - addMeetingContactsList(meetingContactsList, payMeeting.getId()); + addMeetingContactsList(meetingContactsList, payMeeting.getId(),meetingType.equals(MeetingCommon.STANDARD_MEETING_INT)); //新增会员系统标协会议 - if (payMeeting.getMeetingType().equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) { + if (meetingType.equals(MeetingCommon.STANDARD_MEETING_INT)) { String directorId = payMeeting.getDirectorId(); LoginUser loginUser = sysBaseAPI.getUserById(directorId); payMeeting.setDirectorName(loginUser.getRealname()); @@ -174,6 +179,12 @@ public class PayMeetingServiceImpl extends ServiceImpl strings = Arrays.asList(fileIds.split(",")); + List arrayList = new ArrayList<>(strings); + fileIdList.addAll(arrayList); + } pushStandardsFiles(fileIdList); } } @@ -255,9 +266,10 @@ public class PayMeetingServiceImpl extends ServiceImpl meetingContactsList = payMeeting.getMeetingContactsList(); - addMeetingContactsList(meetingContactsList, payMeeting.getId()); + addMeetingContactsList(meetingContactsList, payMeeting.getId(), MeetingCommon.STANDARD_MEETING_INT.equals(meetingType)); } public void delWithStandardForUpdate(PayMeeting payMeeting){ @@ -313,11 +325,12 @@ public class PayMeetingServiceImpl extends ServiceImpl meetingContactsList = payMeetingVO.getMeetingContactsList(); - addMeetingContactsList(meetingContactsList, payMeeting.getId()); + addMeetingContactsList(meetingContactsList, payMeeting.getId(), meetingType.equals(MeetingCommon.STANDARD_MEETING_INT)); //编辑标协会议 - if (payMeeting.getMeetingType().equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) { + if (meetingType.equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) { String directorId = payMeeting.getDirectorId(); LoginUser loginUser = sysBaseAPI.getUserById(directorId); payMeeting.setDirectorName(loginUser.getRealname()); @@ -333,6 +346,12 @@ public class PayMeetingServiceImpl extends ServiceImpl strings = Arrays.asList(fileIds.split(",")); + List arrayList = new ArrayList<>(strings); + fileIdList.addAll(arrayList); + } pushStandardsFiles(fileIdList); } } @@ -340,7 +359,7 @@ public class PayMeetingServiceImpl extends ServiceImpl meetingContactsList, String meetingId) { + private void addMeetingContactsList(List meetingContactsList, String meetingId, boolean needPushStandard) { if (meetingContactsList == null) { return; @@ -369,7 +388,9 @@ public class PayMeetingServiceImpl extends ServiceImpl meetingDataList = new ArrayList<>(); + String meetingData = meeting.getMeetingData(); + if (StringUtils.isNotBlank(meetingData)) { + meetingDataList.addAll(Arrays.asList(meetingData.split(","))); + } + //LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + //wrapper1.eq(PayMeetingGuestsFile::getMeetingId,meetingId); + //List payMeetingGuestsFiles = meetingGuestsFileMapper.selectList(wrapper1); + //List collect = payMeetingGuestsFiles.stream().map(PayMeetingGuestsFile::getFileId).collect(Collectors.toList()); + //meetingDataList.addAll(collect); + //meeting.setMeetingData(String.join(",",meetingDataList)); } return pageList; } @@ -1089,23 +1126,40 @@ public class PayMeetingServiceImpl extends ServiceImpl uploadFileSendMsg(UploadFileVO uploadFileVO, Integer meetingCommon) { + public List uploadFileSendMsg(UploadFileVO uploadFileVO, Integer meetingCommon, Boolean isGuestsUpload) { List listMsg = new ArrayList<>(); String id = uploadFileVO.getId(); - PayMeeting payMeeting = getOne( - new LambdaQueryWrapper() - .eq(PayMeeting::getId, id) - .eq(PayMeeting::getMeetingType, meetingCommon) - ); + LambdaQueryWrapper payMeetingLambdaQueryWrapper = new LambdaQueryWrapper<>(); + payMeetingLambdaQueryWrapper.eq(PayMeeting::getId, id); + if (meetingCommon != null){ + payMeetingLambdaQueryWrapper.eq(PayMeeting::getMeetingType, meetingCommon); + } + PayMeeting payMeeting = getOne(payMeetingLambdaQueryWrapper); if (Objects.isNull(payMeeting)) { throw new JeroBootException("会议不存在"); } + meetingCommon = payMeeting.getMeetingType(); String fileIds = uploadFileVO.getFileIds(); + List meetingFileIdList = new ArrayList<>(Arrays.asList(fileIds.split(","))); + if (isGuestsUpload){ + String meetingData = payMeeting.getMeetingData(); + if (StringUtils.isNotBlank(meetingData)) { + List oldMeetingDataList = new ArrayList<>(Arrays.asList(meetingData.split(","))); + oldMeetingDataList.addAll(meetingFileIdList); + meetingFileIdList = oldMeetingDataList; + fileIds = String.join(",", meetingFileIdList); + } + } + //删除嘉宾文件 + LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper<>(); + deleteWrapper.eq(PayMeetingGuestsFile::getMeetingId,id); + deleteWrapper.notIn(PayMeetingGuestsFile::getFileId,meetingFileIdList); + meetingGuestsFileMapper.delete(deleteWrapper); + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(PayMeeting::getId, id); wrapper.set(PayMeeting::getMeetingData, fileIds); update(wrapper); - List meetingFileIdList = Arrays.asList(fileIds.split(",")); //如果过滤后为空则不发邮件 if (meetingFileIdList.isEmpty()) { return listMsg; @@ -1132,7 +1186,7 @@ public class PayMeetingServiceImpl extends ServiceImpl() .select(PayMeetingSituation::getCompanyContactId) .eq(PayMeetingSituation::getMeetingId, id) - .eq(PayMeetingSituation::getCheckResult, MeetingSubitemCommon.SIGNUP_STATUS_1) + .eq(PayMeetingSituation::getRegisterCheckResult, MeetingSubitemCommon.SIGNUP_STATUS_1) ); if (payMeetingSituations.isEmpty()) { return listMsg; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java index 7e729824..23c6a9d9 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java @@ -1,4 +1,6 @@ package com.jero.meeting.service.impl; +import java.io.File; +import java.util.Date; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; @@ -8,10 +10,12 @@ import cn.hutool.core.util.StrUtil; 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.jero.common.api.vo.Result; import com.jero.common.common.ProjectCommon; +import com.jero.common.constant.CommonConstant; import com.jero.common.dto.SendMessageDTO; import com.jero.common.enums.CompanyMessageEnums; import com.jero.common.enums.ManagementMessageEnums; @@ -23,6 +27,7 @@ import com.jero.common.service.ContractCreateProjectSendMessageService; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.AuthenticationUtils; import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; import com.jero.common.util.oConvertUtils; @@ -30,6 +35,7 @@ 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.company.vo.UpdateInvoicePram; import com.jero.config.StaticConfig; import com.jero.contract.common.PayIncomeContractCommon; import com.jero.contract.entity.PayIncomeContract; @@ -47,7 +53,9 @@ import com.jero.meeting.common.MeetingCommon; import com.jero.meeting.common.MeetingSubitemCommon; import com.jero.meeting.entity.PayMeeting; import com.jero.meeting.entity.PayMeetingContacts; +import com.jero.meeting.entity.PayMeetingGuestsFile; import com.jero.meeting.entity.PayMeetingSituation; +import com.jero.meeting.mapper.PayMeetingGuestsFileMapper; import com.jero.meeting.mapper.PayMeetingSituationMapper; import com.jero.meeting.service.IPayMeetingContactsService; import com.jero.meeting.service.IPayMeetingService; @@ -67,11 +75,13 @@ import com.jero.project.entity.PayWorkingGroupSubItemContacts; import com.jero.project.service.IPayWorkingGroupSubItemContactsService; import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.standards.memberinfo.service.IMemberInfoService; +import com.jero.standards.xuanguan.stablecrosstraining.entity.StableCrossTraining; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService; import com.jero.util.ObjRecordUtil; import com.jero.util.module.ObjRecordUtilModule; import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.util.Strings; import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.BeanUtils; @@ -146,6 +156,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl 0; - if (!b && !payMeeting.getDirectorId().equals(sysUserId)) { - throw new JeroBootException("只有会议负责人,会议联系人可以删除"); + if (!b && !payMeeting.getDirectorId().equals(sysUserId)&& !payMeetingSituation.getCompanyContactId().equals(sysUserId)) { + throw new JeroBootException("只有会议负责人,会议联系人,参会人可以删除"); } Integer inAccount = payMeetingSituation.getInAccount(); if (!inAccount.equals(PayProjectCommon.IN_ACCOUNT0)) { @@ -1415,6 +1440,9 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl wrapper1 = new LambdaQueryWrapper<>(); wrapper1.eq(PayIncomeContractAssociated::getProjectId, id); PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(wrapper1); @@ -1732,4 +1760,122 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl meetingSituationIdList = Arrays.asList(meetingSituationIds.split(",")); + List payMeetingSituations = this.listByIds(meetingSituationIdList); + for (PayMeetingSituation meetingSituation : payMeetingSituations) { + String meetingId1 = meetingSituation.getMeetingId(); + if (!meetingId.equals(meetingId1)){ + throw new JeroBootException("参会人选择错误"); + } + //只有嘉宾可以设置 + Integer identity = meetingSituation.getIdentity(); + Integer registerCheckResult = meetingSituation.getRegisterCheckResult(); + if (!MeetingSubitemCommon.SIGNUP_STATUS_1.equals(registerCheckResult) + || !identity.equals(MeetingSubitemCommon.JIA_BIN)){ + throw new JeroBootException("只有审核通过的嘉宾才可以设置"); + } + } + Integer guestsUploadFileFlag = setGuestsUploadFileVO.getGuestsUploadFileFlag(); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(PayMeetingSituation::getGuestsUploadFileFlag, guestsUploadFileFlag); + updateWrapper.in(PayMeetingSituation::getId,meetingSituationIdList); + this.update(updateWrapper); + } + + @Override + public void guestsUploadFile(GuestsUploadFileVO guestsUploadFileVO) { + String meetingId = guestsUploadFileVO.getMeetingId(); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String sysUserId = sysUser.getId(); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayMeetingSituation::getMeetingId,meetingId); + wrapper.eq(PayMeetingSituation::getCompanyContactId,sysUserId); + PayMeetingSituation meetingSituation = this.getOne(wrapper); + Integer identity = meetingSituation.getIdentity(); + if (!identity.equals(MeetingSubitemCommon.JIA_BIN)){ + throw new JeroBootException("只有嘉宾可以设置"); + } + Integer guestsUploadFileFlag = meetingSituation.getGuestsUploadFileFlag(); + if (!CommonConstant.DEL_FLAG_1.equals(guestsUploadFileFlag)){ + throw new JeroBootException("没有权限"); + } + String fileIds = guestsUploadFileVO.getFileIds(); + String[] fileIdList = fileIds.split(","); + for (String fileId : fileIdList) { + PayMeetingGuestsFile payMeetingGuestsFile = new PayMeetingGuestsFile(); + payMeetingGuestsFile.setMeetingId(meetingId); + payMeetingGuestsFile.setContactsId(sysUserId); + payMeetingGuestsFile.setFileId(fileId); + meetingGuestsFileMapper.insert(payMeetingGuestsFile); + } + UploadFileVO uploadFileVO = new UploadFileVO(); + uploadFileVO.setId(meetingId); + uploadFileVO.setFileIds(fileIds); + + + meetingService.uploadFileSendMsg(uploadFileVO, null,true); + } + + @Override + public List guestsUploadFileList(GuestsUploadFileVO guestsUploadFileVO) { + String meetingId = guestsUploadFileVO.getMeetingId(); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String sysUserId = sysUser.getId(); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayMeetingGuestsFile::getMeetingId,meetingId); + wrapper.eq(PayMeetingGuestsFile::getContactsId,sysUserId); + wrapper.orderByDesc(PayMeetingGuestsFile::getCreateTime); + return meetingGuestsFileMapper.selectList(wrapper); + } + + @Override + public void guestsDeleteFile(GuestsUploadFileVO guestsUploadFileVO) { + String meetingId = guestsUploadFileVO.getMeetingId(); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String sysUserId = sysUser.getId(); + String fileIds = guestsUploadFileVO.getFileIds(); + List fileIdList = Arrays.asList(fileIds.split(",")); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayMeetingGuestsFile::getMeetingId,meetingId); + wrapper.eq(PayMeetingGuestsFile::getContactsId,sysUserId); + wrapper.in(PayMeetingGuestsFile::getFileId,fileIdList); + meetingGuestsFileMapper.delete(wrapper); + + PayMeeting meeting = meetingService.getById(meetingId); + String meetingData = meeting.getMeetingData(); + List meetingDataList = new ArrayList<>(); + if (StringUtils.isNotBlank(meetingData)){ + meetingDataList = Arrays.asList(meetingData.split(",")); + meetingDataList.removeAll(fileIdList); + } + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(PayMeeting::getId, meetingId); + updateWrapper.set(PayMeeting::getMeetingData, String.join(",",meetingDataList)); + meetingService.update(updateWrapper); + } + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/CommonPeopleVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/CommonPeopleVO.java index 25246fd1..c90e0a54 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/CommonPeopleVO.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/CommonPeopleVO.java @@ -1,5 +1,6 @@ package com.jero.meeting.vo; +import com.jero.common.aspect.annotation.Dict; import com.jero.meeting.valid.group.NotPack; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -55,4 +56,9 @@ public class CommonPeopleVO{ @ApiModelProperty(value = "缴费凭证") private String paymentRecord; + /**发票项目*/ + @Dict(dicCode = "invoice_project") + @ApiModelProperty(value = "发票项目") + private Integer invoiceProject; + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/GuestsUploadFileVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/GuestsUploadFileVO.java new file mode 100644 index 00000000..ef455a6b --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/GuestsUploadFileVO.java @@ -0,0 +1,24 @@ +package com.jero.meeting.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @author liJiaRao + * @date 2023-07-13 9:37 + */ +@Data +public class GuestsUploadFileVO { + /**会议id*/ + @ApiModelProperty(value = "会议id") + @NotBlank(message = "会议项目不能为空") + private String meetingId; + + @ApiModelProperty(value = "文件ids") + @NotBlank(message = "文件不能为空") + private String fileIds; + + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/InternationalGuestVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/InternationalGuestVO.java index 1ab335b4..6e2aedcb 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/InternationalGuestVO.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/InternationalGuestVO.java @@ -156,9 +156,5 @@ public class InternationalGuestVO { @Size(max = 50,message = "同行人最大为50字符") private String peer; - /**备注*/ - @Excel(name = "备注", width = 15) - @ApiModelProperty(value = "备注") - @Size(max = 200,message = "备注最大为200字符") - private String remark; + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/MeetingEntity.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/MeetingEntity.java index 31c88546..1c555a54 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/MeetingEntity.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/MeetingEntity.java @@ -96,4 +96,10 @@ public class MeetingEntity implements Serializable { @ApiModelProperty(value = "实收金额") private BigDecimal paidAmount; + /**备注*/ + @Excel(name = "备注", width = 15) + @ApiModelProperty(value = "备注") + @Size(max = 200,message = "备注最大为200字符") + private String remark; + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingSituationVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingSituationVO.java index a2222c22..87e5c13d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingSituationVO.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingSituationVO.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import com.jero.common.aspect.annotation.Dict; +import com.jero.company.vo.UpdateInvoicePram; import com.jero.meeting.valid.group.CommonPeople; import com.jero.meeting.valid.group.Guest; import io.swagger.annotations.ApiModelProperty; @@ -308,4 +309,40 @@ public class PayMeetingSituationVO { @JsonFormat(shape = JsonFormat.Shape.STRING) private BigDecimal noTaxAmount; + /**信用代码*/ + @ApiModelProperty(value = "信用代码") + @NotEmpty(message = "信用代码不能为空",groups = {UpdateInvoicePram.needInvoice_1.class, UpdateInvoicePram.needInvoice_2.class}) + @Size(max = 18, message = "信用代码长度不能大于18个字符",groups = {UpdateInvoicePram.needInvoice_1.class,UpdateInvoicePram.needInvoice_2.class}) + @Pattern(regexp = "^([0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}|[1-9]\\d{14})$",message = "信用代码格式错误",groups = {UpdateInvoicePram.needInvoice_1.class,UpdateInvoicePram.needInvoice_2.class}) + private String dutyCode; + /**公司地址*/ + @ApiModelProperty(value = "公司地址") + @NotEmpty(message = "公司地址不能为空",groups = UpdateInvoicePram.needInvoice_2.class) + @Size(max = 50, message = "公司地址长度不能大于50个字符",groups = UpdateInvoicePram.needInvoice_2.class) + private String companyAddress; + /**公司电话*/ + @ApiModelProperty(value = "公司电话") + @Size(max = 15, message = "公司电话长度不能大于15个字符",groups = UpdateInvoicePram.needInvoice_2.class) + @Pattern(regexp = "^([0-9-]+)$",message = "公司电话格式错误",groups = UpdateInvoicePram.needInvoice_2.class) + private String companyPhone; + /**开户行*/ + @ApiModelProperty(value = "开户行") + @NotEmpty(message = "开户行不能为空",groups = UpdateInvoicePram.needInvoice_2.class) + @Size(max = 50, message = "开户行长度不能大于50个字符",groups = UpdateInvoicePram.needInvoice_2.class) + private String openingBank; + /**银行账号*/ + @ApiModelProperty(value = "银行账号") + @NotEmpty(message = "银行账号不能为空",groups = UpdateInvoicePram.needInvoice_2.class) + @Size(max = 50, message = "银行账号长度不能大于50个字符",groups = UpdateInvoicePram.needInvoice_2.class) + private String bankAccount; + /**联行号*/ + @ApiModelProperty(value = "联行号") + @NotEmpty(message = "联行号不能为空",groups = UpdateInvoicePram.needInvoice_2.class) + private String linkBankNumber; + + /**发票项目*/ + @Dict(dicCode = "invoice_project") + @ApiModelProperty(value = "发票项目") + private Integer invoiceProject; + } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingVO.java index 21f16072..f054dc65 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingVO.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingVO.java @@ -267,6 +267,11 @@ public class PayMeetingVO implements Serializable { @Size(max = 1000, message = "会议通知文件数量超出最大限制") private String meetingFiles; + /**会议通知文件*/ + @ApiModelProperty(value = "会议文件") + @Size(max = 1000, message = "会议文件数量超出最大限制") + private String fileIds; + /**会议资料*/ @ApiModelProperty(value = "会议资料") @Size(max = 1000, message = "会议资料数量超出最大限制") diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PublishReminderVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PublishReminderVO.java index 5c831c2e..9dc9200d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PublishReminderVO.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PublishReminderVO.java @@ -21,4 +21,6 @@ public class PublishReminderVO { private List subitemIds; @ApiModelProperty(value = "项目类型1:工作组,2:分标委") private Integer projectType; + @ApiModelProperty(value = "是否发送邮件") + private Integer sendEmailFlag; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/SetGuestsUploadFileVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/SetGuestsUploadFileVO.java new file mode 100644 index 00000000..90081244 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/SetGuestsUploadFileVO.java @@ -0,0 +1,27 @@ +package com.jero.meeting.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author liJiaRao + * @date 2023-07-13 9:37 + */ +@Data +public class SetGuestsUploadFileVO { + /**会议id*/ + @ApiModelProperty(value = "会议id") + @NotBlank(message = "会议项目不能为空") + private String meetingId; + + @ApiModelProperty(value = "参会人ids") + @NotBlank(message = "参会人不能为空") + private String meetingSituationIds; + + @ApiModelProperty(value = "嘉宾上传文件标识") + @NotNull(message = "嘉宾上传文件标识不能为空") + private Integer guestsUploadFileFlag; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/excel/InternationalSituationExcel.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/excel/InternationalSituationExcel.java index bf590429..7ca1141c 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/excel/InternationalSituationExcel.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/excel/InternationalSituationExcel.java @@ -112,10 +112,6 @@ public class InternationalSituationExcel extends SituationBaseExcel { @Excel(name = "同行人", width = 15) private String peer; - /**备注*/ - @Excel(name = "备注", width = 15) - private String remark; - /**邮寄联系人*/ @Excel(name = "邮寄联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id") private String postContactId; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/excel/SituationBaseExcel.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/excel/SituationBaseExcel.java index dacea60c..00d289d0 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/excel/SituationBaseExcel.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/excel/SituationBaseExcel.java @@ -12,4 +12,30 @@ public class SituationBaseExcel { /**签到文件*/ @Excel(name = "手动签到", type = 2 ,width = 40 , height = 20,imageType = 3) private String checkFile; + + /**发票项目*/ + @Excel(name = "发票项目", dicCode = "invoice_project", width = 15) + private Integer invoiceProject; + /**信用代码*/ + @Excel(name = "信用代码", width = 15) + private String dutyCode; + /**公司地址*/ + @Excel(name = "公司地址", width = 15) + private String companyAddress; + /**公司电话*/ + @Excel(name = "公司电话", width = 15) + private String companyPhone; + /**开户行*/ + @Excel(name = "开户行", width = 15) + private String openingBank; + /**银行账号*/ + @Excel(name = "银行账号", width = 15) + private String bankAccount; + /**联行号*/ + @Excel(name = "联行号", width = 15) + private String linkBankNumber; + + /**备注*/ + @Excel(name = "备注", width = 15) + private String remark; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyProjectServiceImpl.java index d78f7bfc..7b76bab5 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyProjectServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyProjectServiceImpl.java @@ -25,6 +25,7 @@ import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.pack.service.IPayPackCompanyService; import com.jero.pack.vo.PayPackCompanyProjectInput; import com.jero.pack.vo.PayProjectExcel; +import com.jero.project.common.PayProjectCommon; import com.jero.project.entity.PayCommonProject; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -164,18 +165,36 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl query = new LambdaQueryWrapper<>(); - query.eq(PayPackCompanyProject::getProjectId,payPackCompanyProject.getId()); + query.eq(PayPackCompanyProject::getProjectId, projectId); List listPayPackCompanyProject = payPackCompanyProjectService.list(query); if(CollectionUtils.isEmpty(listPayPackCompanyProject)){ throw new JeroBootException("不存在打包项目!"); } - if(Objects.equals(listPayPackCompanyProject.get(0).getCome(),PackCommon.COME1)){ + PayPackCompanyProject packCompanyProject = listPayPackCompanyProject.get(0); + Integer projectType = packCompanyProject.getProjectType(); + if (Objects.equals(projectType, Integer.parseInt(PayProjectCommon.PROJECT_TYPE5))|| + Objects.equals(projectType, Integer.parseInt(PayProjectCommon.PROJECT_TYPE6))){ + PayCommonProject payCommonProject = projectDetailMapper.queryProject(projectId); + Integer chargeWay = payCommonProject.getChargeWay(); + Integer affirmIncome = payCommonProject.getAffirmIncome(); + Integer inAccount = payCommonProject.getInAccount(); + if(Objects.equals(chargeWay,PayProjectCommon.CHARGE_WAY2)){ + if (1 == affirmIncome || 2 == affirmIncome){ + throw new JeroBootException("已经确认收入的打包标协会员项目不允许取消打包"); + } + if (1 == inAccount || 2 == inAccount){ + throw new JeroBootException("已经来款的打包标协会员项目不允许取消打包"); + } + } + } + if(Objects.equals(packCompanyProject.getCome(),PackCommon.COME1)){ throw new JeroBootException("此项目已在合同处创建关联,请先从合同处取消关联!"); } // 更新项目状态 - projectPackService.updateProjectStatus(listPayPackCompanyProject.get(0).getProjectId(),String.valueOf(listPayPackCompanyProject.get(0).getProjectType()),String.valueOf(PackCommon.PACKAGING0),payPackCompanyProject.getPackId()); - payPackCompanyProjectService.removeById(listPayPackCompanyProject.get(0).getId()); + projectPackService.updateProjectStatus(packCompanyProject.getProjectId(),String.valueOf(projectType),String.valueOf(PackCommon.PACKAGING0),payPackCompanyProject.getPackId()); + payPackCompanyProjectService.removeById(packCompanyProject.getId()); } @Override diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayConfirmPaymentRecordController.java b/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayConfirmPaymentRecordController.java index f74d7de2..85daf193 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayConfirmPaymentRecordController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/controller/PayConfirmPaymentRecordController.java @@ -58,7 +58,7 @@ public class PayConfirmPaymentRecordController extends JeroController> queryList(PayConfirmPaymentRecord payConfirmPaymentRecord, @@ -71,7 +71,7 @@ public class PayConfirmPaymentRecordController extends JeroController UNION ALL - select tmsub.id,tmember.project_name,tmsub.charge_use,tmember.director_id,su.realname,tmsub.company_id,tmsub.company_name,tmsub.amount_receivable,tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5, + select tmsub.id,tmember.project_name,tmsub.charge_use,tmember.director_id,su.realname,tmsub.company_id, + if(tmsub.company_name = tmsub.header_name or tmsub.header_name is null, tmsub.company_name , concat(tmsub.company_name,'(代付)')) as company_name, + tmsub.amount_receivable,tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5, tmsub.invoice_amount,tmsub.post_contact_id,'' as register_check_result,tmsub.liaison_man,tmsub.payment_status,tmsub.company_id,tmsub.confirm_amount,tmsub.affirm_income from tb_member_project tmember inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id @@ -202,10 +204,14 @@ AND 1=2 - AND tmember.project_name like concat('%',concat(#{payCommonProject.chargeProject},'%')) + AND tmember.project_name like concat('%',#{payCommonProject.chargeProject},'%') - AND tmsub.company_name like concat('%',concat(#{payCommonProject.chargeCompanyTemporaryName},'%')) + AND ( + tmsub.company_name like concat('%',#{payCommonProject.chargeCompanyTemporaryName},'%') + or + tmsub.header_name like concat('%',#{payCommonProject.chargeCompanyTemporaryName},'%') + ) AND tmsub.payment_status = #{payCommonProject.paymentStatus} @@ -225,7 +231,9 @@ UNION ALL - select tcp.id,tmember.project_name,tcp.charge_use,tmember.director_id,su.realname,tcp.company_id,tcp.company_name,tcp.amount_receivable,tcp.paid_amount,tcp.invoice_requirements,tcp.pack,tcp.in_account,tcp.make_invoice,tcp.mail,tcp.create_time,6, + select tcp.id,tmember.project_name,tcp.charge_use,tmember.director_id,su.realname,tcp.company_id, + if(tcp.company_name = tcp.header_name or tcp.header_name is null, tcp.company_name , concat(tcp.company_name,'(代付)')) as company_name, + tcp.amount_receivable,tcp.paid_amount,tcp.invoice_requirements,tcp.pack,tcp.in_account,tcp.make_invoice,tcp.mail,tcp.create_time,6, tcp.invoice_amount,tcp.post_contact_id,'' as register_check_result,tcp.liaison_man,tcp.payment_status,tcp.company_id,tcp.confirm_amount,tcp.affirm_income from tb_member_project tmember inner join tb_certificate_payment tcp on tmember.id=tcp.project_id @@ -237,10 +245,14 @@ AND 1=2 - AND tmember.project_name like concat('%',concat(#{payCommonProject.chargeProject},'%')) + AND tmember.project_name like concat('%',#{payCommonProject.chargeProject},'%') - AND tcp.company_name like concat('%',concat(#{payCommonProject.chargeCompanyTemporaryName},'%')) + AND ( + tcp.company_name like concat('%',#{payCommonProject.chargeCompanyTemporaryName},'%') + or + tcp.header_name like concat('%',#{payCommonProject.chargeCompanyTemporaryName},'%') + ) AND tcp.payment_status = #{payCommonProject.paymentStatus} @@ -262,14 +274,14 @@ LEFT JOIN pay_payment_record ppr ON ppr.project_id = p.id where 1=1 - - AND p.receivable_amount between #{param2.startAmount} and #{param2.endAmount} + + AND p.receivable_amount between #{payCommonProject.startAmount} and #{payCommonProject.endAmount} - - AND p.receivable_amount #{param2.endAmount} + + AND p.receivable_amount #{payCommonProject.endAmount} - - AND p.receivable_amount =]]> #{param2.startAmount} + + AND p.receivable_amount =]]> #{payCommonProject.startAmount} AND p.projectType = #{projectType} @@ -282,12 +294,12 @@ + select + + from sys_sms_template + where template_code=#{templateCode} + \ No newline at end of file diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/message/service/ISysMessageTemplateService.java b/jero-boot-module-system/src/main/java/com/jero/modules/message/service/ISysMessageTemplateService.java index 900aaa11..77bce9c4 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/message/service/ISysMessageTemplateService.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/message/service/ISysMessageTemplateService.java @@ -13,4 +13,6 @@ import com.jero.modules.message.entity.SysMessageTemplate; */ public interface ISysMessageTemplateService extends JeroService { List selectByCode(String code); + + SysMessageTemplate queryByCode(String code); } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/message/service/impl/SysMessageTemplateServiceImpl.java b/jero-boot-module-system/src/main/java/com/jero/modules/message/service/impl/SysMessageTemplateServiceImpl.java index f0943e6b..1492c147 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/message/service/impl/SysMessageTemplateServiceImpl.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/message/service/impl/SysMessageTemplateServiceImpl.java @@ -25,4 +25,9 @@ public class SysMessageTemplateServiceImpl extends JeroServiceImpl selectByCode(String code) { return sysMessageTemplateMapper.selectByCode(code); } + + @Override + public SysMessageTemplate queryByCode(String code) { + return sysMessageTemplateMapper.selectOneByTemplateCode(code); + } } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/oss/controller/OSSFileController.java b/jero-boot-module-system/src/main/java/com/jero/modules/oss/controller/OSSFileController.java index dcd5bc86..2b5ba144 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/oss/controller/OSSFileController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/oss/controller/OSSFileController.java @@ -6,6 +6,8 @@ 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.system.api.ISysBaseAPI; +import com.jero.common.system.vo.LoginUser; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresRoles; import com.jero.common.api.vo.Result; @@ -27,6 +29,8 @@ public class OSSFileController { @Autowired private IOSSFileService ossFileService; + @Autowired + private ISysBaseAPI sysBaseAPI; @ResponseBody @GetMapping("/page") @@ -87,6 +91,11 @@ public class OSSFileController { result.error500("未找到对应实体"); } else { + String createBy = file.getCreateBy(); + LoginUser loginUser = sysBaseAPI.getUserByName(createBy); + if (loginUser != null){ + file.setCreateBy(loginUser.getRealname()); + } result.setResult(file); result.setSuccess(true); } @@ -103,6 +112,13 @@ public class OSSFileController { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.in(OSSFile::getId ,Arrays.asList(ids.split(","))); List list = ossFileService.list(wrapper); + for (OSSFile file : list) { + String createBy = file.getCreateBy(); + LoginUser loginUser = sysBaseAPI.getUserByName(createBy); + if (loginUser != null){ + file.setCreateBy(loginUser.getRealname()); + } + } return Result.OK(list); } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java index d6128b39..02152f4a 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java @@ -125,6 +125,56 @@ public class CommonController { return result; } + /** + * 文件上传统一方法 + * @param request + * @param response + * @return + */ + @PostMapping(value = "/uploadByToken") + public Result uploadByToken(HttpServletRequest request, HttpServletResponse response) { + Result result = new Result<>(); + String savePath = ""; + String bizPath = request.getParameter("biz"); + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + // 获取上传文件对象 + MultipartFile file = multipartRequest.getFile("file"); + // 文件类型是否处于黑名单 + if(CommonUtils.limitFileSuffix(file.getOriginalFilename(),fileSuffixLimits)){ + result.setMessage("该文件类型不允许上传"); + result.setSuccess(false); + result.setCode(0); + return result; + } + if(oConvertUtils.isEmpty(bizPath)){ + bizPath = ""; + } + if(CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)){ + // 本地上传 + savePath = CommonUtils.uploadLocal(file,bizPath,uploadpath); + }else{ + // minio上传 + savePath = CommonUtils.upload(file, bizPath, uploadType); + } + if(oConvertUtils.isNotEmpty(savePath)){ + //上传成功 进行数据库存储 + OSSFile ossFile = new OSSFile(); + // 文件名 + String fileName = file.getOriginalFilename(); + fileName = CommonUtils.getFileName(fileName); + ossFile.setFileName(fileName); + ossFile.setUrl(savePath); + ossFileService.save(ossFile); + result.setMessage(savePath); + result.setResult(ossFile); + result.setSuccess(true); + }else { + result.setMessage("上传失败!"); + result.setSuccess(false); + } + return result; + } + /** * 预览图片&下载文件 * @@ -273,12 +323,12 @@ public class CommonController { ossFileService.updateById(ossFile); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - if (loginUser.getIsCompanyUser()) { - Integer integer = ossFileService.searchDownloadTimes(ossFile.getId(), loginUser.getId()); - if (integer >= 5) { - throw new JeroBootException("超出下载次数限制"); - } - } + //if (loginUser.getIsCompanyUser()) { + // Integer integer = ossFileService.searchDownloadTimes(ossFile.getId(), loginUser.getId()); + // if (integer >= 5) { + // throw new JeroBootException("超出下载次数限制"); + // } + //} ossFileService.saveDownloadTimes(ossFile.getId(), loginUser.getId()); response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1")); diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysAnnouncementSendController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysAnnouncementSendController.java index 08acef6e..d55ac14b 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysAnnouncementSendController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysAnnouncementSendController.java @@ -2,10 +2,12 @@ package com.jero.modules.system.controller; import java.util.Arrays; import java.util.Date; +import java.util.List; import javax.servlet.http.HttpServletRequest; import com.jero.common.aspect.annotation.AutoLog; +import io.swagger.annotations.ApiOperation; import org.apache.shiro.SecurityUtils; import com.jero.common.api.vo.Result; import com.jero.common.constant.CommonConstant; @@ -265,6 +267,39 @@ public class SysAnnouncementSendController { return result; } + /** + * @功能:企业端获取我的消息(截止时间未读消息) + * @return + */ + @GetMapping(value = "/getDeadlineUnreadSend") + @ApiOperation(value="企业端获取我的消息(截止时间未读消息)", notes="企业端获取我的消息(截止时间未读消息)") + public Result> getDeadlineUnreadSend(AnnouncementSendModel announcementSendModel) { + LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); + String userId = sysUser.getId(); + announcementSendModel.setUserId(userId); + announcementSendModel.setDeadline(new Date()); + announcementSendModel.setReadFlag(CommonConstant.NO_READ_FLAG); + List pageList = sysAnnouncementSendService.getDeadlineUnreadSend(announcementSendModel); + return Result.OK(pageList); + } + + /** + * @Remarks: 一键已读(截止时间未读消息) + **/ + @GetMapping(value = "/allReadDeadlineUnreadSend") + @ApiOperation(value="一键已读(截止时间未读消息)", notes="一键已读(截止时间未读消息)") + public Result allReadDeadlineUnreadSend(@RequestParam("anntIds") String anntIds) { + LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); + String userId = sysUser.getId(); + LambdaUpdateWrapper updateWrapper = new UpdateWrapper().lambda(); + updateWrapper.set(SysAnnouncementSend::getReadFlag, CommonConstant.HAS_READ_FLAG); + updateWrapper.set(SysAnnouncementSend::getReadTime, new Date()); + updateWrapper.in(SysAnnouncementSend::getAnntId, Arrays.asList(anntIds.split(","))); + updateWrapper.eq(SysAnnouncementSend::getUserId, userId); + sysAnnouncementSendService.update(updateWrapper); + return Result.OK("操作成功"); + } + /** * @功能:一键已读 * @return diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysNoticeController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysNoticeController.java new file mode 100644 index 00000000..606fc0d6 --- /dev/null +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysNoticeController.java @@ -0,0 +1,82 @@ +package com.jero.modules.system.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jero.common.api.vo.Result; +import com.jero.modules.system.entity.SysNotice; +import com.jero.modules.system.service.ISysNoticeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; + +/** + * @Author: liao + * @Date: 2023/7/14 15:42 + * @remarks: 公告管理 + */ +@RestController +@RequestMapping("/sysNotice") +@Api(tags = "公告管理") +public class SysNoticeController { + + @Autowired + private ISysNoticeService sysNoticeService; + + @ApiOperation(value = "公告管理-添加", notes = "公告管理-添加") + @PostMapping(value = "/add") + @RequiresPermissions("sysNotice:add") + public Result add(@Validated @RequestBody SysNotice sysNotice) { + sysNoticeService.add(sysNotice); + return Result.OK(Result.OPERATING_SUCCESS); + } + + @ApiOperation(value = "公告管理-根据id删除", notes = "公告管理-根据id删除") + @GetMapping(value = "/deleteById") + @RequiresPermissions("sysNotice:deleteById") + public Result deleteById(@RequestParam(name = "id") String id) { + sysNoticeService.deleteById(id); + return Result.OK(Result.OPERATING_SUCCESS); + } + + @ApiOperation(value = "公告管理-根据ids批量删除", notes = "公告管理-根据ids批量删除") + @GetMapping(value = "/deleteBatch") + @RequiresPermissions("sysNotice:deleteBatch") + public Result deleteBatch(@RequestParam(name = "ids") String ids) { + sysNoticeService.deleteBatch(ids); + return Result.OK(Result.OPERATING_SUCCESS); + } + + @ApiOperation(value = "公告管理-编辑", notes = "公告管理-编辑") + @PostMapping(value = "/edit") + @RequiresPermissions("sysNotice:edit") + public Result edit(@Validated @RequestBody SysNotice sysNotice) { + sysNoticeService.edit(sysNotice); + return Result.OK(Result.OPERATING_SUCCESS); + } + + @ApiOperation(value = "公告管理-分页查询", notes = "公告管理-分页查询") + @GetMapping(value = "/pageList") + @RequiresPermissions("sysNotice:pageList") + public Result> pageList(SysNotice sysNotice, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + IPage pageList = sysNoticeService.pageList(sysNotice, pageNo, pageSize, req); + return Result.OK(pageList); + } + + @ApiOperation(value = "公告管理-企业端查询", notes = "公告管理-企业端查询") + @GetMapping(value = "/page") + public Result> page(SysNotice sysNotice, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + IPage pageList = sysNoticeService.pageList(sysNotice, pageNo, pageSize, req); + return Result.OK(pageList); + } + +} diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysAnnouncement.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysAnnouncement.java index 65678b78..79e7db40 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysAnnouncement.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysAnnouncement.java @@ -11,6 +11,7 @@ import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; +import java.util.Date; /** * @Description: 系统通告表 @@ -158,4 +159,9 @@ public class SysAnnouncement implements Serializable { * 跳转参数 */ private String jumpParameter; + + /**截止时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date deadline; } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysNotice.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysNotice.java new file mode 100644 index 00000000..66b52622 --- /dev/null +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysNotice.java @@ -0,0 +1,67 @@ +package com.jero.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.io.Serializable; +import java.util.Date; + +/** + * @Author: liao + * @Date: 2023/7/14 14:31 + * @remarks: 公告管理表 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class SysNotice implements Serializable { + + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + private String id; + /**创建人*/ + private String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date createTime; + /**更新人*/ + private String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + @ApiModelProperty("公告名称") + private String noticeName; + @ApiModelProperty("公告内容") + private String noticeContent; + @ApiModelProperty("附件") + @Size(max = 300, message = "附件数量超出最大限制") + private String noticeFile; + @ApiModelProperty("状态(1-启用,0-禁用)") + @NotNull(message = "状态不能为空") + private Integer noticeStatus; + + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @TableField(exist = false) + private Date startTime; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @TableField(exist = false) + private Date endTime; +} diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysAnnouncementSendMapper.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysAnnouncementSendMapper.java index bf116af7..1cec8242 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysAnnouncementSendMapper.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysAnnouncementSendMapper.java @@ -28,4 +28,9 @@ public interface SysAnnouncementSendMapper extends BaseMapper getMyAnnouncementSendList(Page page,@Param("announcementSendModel") AnnouncementSendModel announcementSendModel); + /** + * @Remarks: 获取截止时间后未读的消息 + **/ + List getMyAnnouncementSendList(@Param("announcementSendModel") AnnouncementSendModel announcementSendModel); + } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysNoticeMapper.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysNoticeMapper.java new file mode 100644 index 00000000..add4d47c --- /dev/null +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysNoticeMapper.java @@ -0,0 +1,14 @@ +package com.jero.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.jero.modules.system.entity.SysNotice; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Author: liao + * @Date: 2023/7/14 14:49 + * @remarks: 公告管理 + */ +@Mapper +public interface SysNoticeMapper extends BaseMapper { +} diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysAnnouncementSendMapper.xml b/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysAnnouncementSendMapper.xml index d0e4b4ff..2fff65b6 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysAnnouncementSendMapper.xml +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysAnnouncementSendMapper.xml @@ -24,53 +24,56 @@ \ No newline at end of file diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/model/AnnouncementSendModel.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/model/AnnouncementSendModel.java index 841fd7ce..c67bfb0f 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/model/AnnouncementSendModel.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/model/AnnouncementSendModel.java @@ -8,6 +8,7 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; +import java.util.Date; /** * @Description: 用户通告阅读标记表 @@ -92,4 +93,9 @@ public class AnnouncementSendModel implements Serializable { * 跳转参数 */ private String jumpParameter; + + /** + * @Remarks: 截止时间 + **/ + private Date deadline; } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysAnnouncementSendService.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysAnnouncementSendService.java index 74413002..670fa7e4 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysAnnouncementSendService.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysAnnouncementSendService.java @@ -25,4 +25,8 @@ public interface ISysAnnouncementSendService extends IService getMyAnnouncementSendPage(Page page,AnnouncementSendModel announcementSendModel); + /** + * @Remarks: 企业端获取我的消息(截止时间未读消息) + **/ + List getDeadlineUnreadSend(AnnouncementSendModel announcementSendModel); } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysNoticeService.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysNoticeService.java new file mode 100644 index 00000000..9234f167 --- /dev/null +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysNoticeService.java @@ -0,0 +1,24 @@ +package com.jero.modules.system.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.system.entity.SysNotice; + +import javax.servlet.http.HttpServletRequest; + +/** + * @Author: liao + * @Date: 2023/7/14 15:25 + * @remarks: 公告管理 + */ +public interface ISysNoticeService extends IService { + void add(SysNotice sysNotice); + + void deleteById(String id); + + void deleteBatch(String ids); + + void edit(SysNotice sysNotice); + + IPage pageList(SysNotice sysNotice, Integer pageNo, Integer pageSize, HttpServletRequest req); +} diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementSendServiceImpl.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementSendServiceImpl.java index 52a65b6a..4ae90e72 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementSendServiceImpl.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysAnnouncementSendServiceImpl.java @@ -36,4 +36,12 @@ public class SysAnnouncementSendServiceImpl extends ServiceImpl getDeadlineUnreadSend(AnnouncementSendModel announcementSendModel) { + return sysAnnouncementSendMapper.getMyAnnouncementSendList(announcementSendModel); + } + } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysNoticeServiceImpl.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysNoticeServiceImpl.java new file mode 100644 index 00000000..25d20eee --- /dev/null +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysNoticeServiceImpl.java @@ -0,0 +1,64 @@ +package com.jero.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.system.entity.SysNotice; +import com.jero.modules.system.mapper.SysNoticeMapper; +import com.jero.modules.system.service.ISysNoticeService; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; +import java.util.Arrays; +import java.util.Objects; + +/** + * @Author: liao + * @Date: 2023/7/14 15:41 + * @remarks: 公告管理 + */ +@Service +public class SysNoticeServiceImpl extends ServiceImpl implements ISysNoticeService { + @Override + public void add(SysNotice sysNotice) { + save(sysNotice); + } + + @Override + public void deleteById(String id) { + removeById(id); + } + + @Override + public void deleteBatch(String ids) { + removeByIds(Arrays.asList(ids.split(","))); + } + + @Override + public void edit(SysNotice sysNotice) { + updateById(sysNotice); + } + + @Override + public IPage pageList(SysNotice sysNotice, Integer pageNo, Integer pageSize, HttpServletRequest req) { + Page page = new Page<>(pageNo, pageSize); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sysNotice, req.getParameterMap()); + if (!Objects.isNull(sysNotice.getStartTime())) { + queryWrapper.ge("create_time", sysNotice.getStartTime()); + } + if (!Objects.isNull(sysNotice.getEndTime())) { + // 将Date类型转换为LocalDateTime类型 + LocalDateTime endDateTime = sysNotice.getEndTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + // 获取当天最晚时间 + LocalDateTime endOfDay = endDateTime.with(LocalTime.MAX); + queryWrapper.le("create_time", endOfDay); + } + queryWrapper.lambda().orderByDesc(SysNotice::getCreateTime); + return page(page, queryWrapper); + } +}