diff --git a/db/24年2月变更.sql b/db/24年2月变更.sql index ad73ea9c..6f8ef910 100644 --- a/db/24年2月变更.sql +++ b/db/24年2月变更.sql @@ -8,6 +8,21 @@ ALTER TABLE `tb_member_project` ADD COLUMN `council_charge_notice_file_id` varchar(500) COMMENT '理事会收费通知文件id', ADD COLUMN `remark` varchar(600) COMMENT '备注'; +# 会员状态字典 +DELETE FROM sys_dict_item WHERE id='1433258355958185986'; +UPDATE sys_dict SET description='会员状态(2-未缴费 3-已缴费;4-已过期)' WHERE id='1433258288161456129' AND del_flag=0; + +ALTER TABLE `tb_member_project_subitem` + add column contract_num varchar(50) comment '合同编号', + add column charge_notice_no varchar(150) comment '收费通知号', + add column charge_notice_id varchar(500) comment '收费通知文件id', + add column remark varchar(600) comment '备注', + add column estimated_arrival_date datetime comment '预估到账日期', + add column effective_date date comment '生效日期', + add column invalidation_date date comment '失效日期', + add column ticket_collection tinyint(1) comment '提票'; + + -- auto-generated definition create table tb_member_project_file ( diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/PayContactsManagementController.java b/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/PayContactsManagementController.java index acf60921..67b240b7 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/PayContactsManagementController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/PayContactsManagementController.java @@ -794,7 +794,10 @@ public class PayContactsManagementController extends JeroController queryByCompany(@RequestParam(name="companyId") String companyId,@RequestParam(name="name",required = false) String name) { + public Result queryByCompany(@RequestParam(name="companyId",required = false) String companyId,@RequestParam(name="name",required = false) String name) { + if (StringUtils.isBlank(companyId)){ + return Result.OK(); + } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(PayContactsManagement::getCompanyId,companyId); if(!StringUtils.isEmpty(name)){ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/TbMemberProjectSubitemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/TbMemberProjectSubitemController.java index 021e601e..1752bfc6 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/TbMemberProjectSubitemController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/controller/TbMemberProjectSubitemController.java @@ -17,6 +17,7 @@ import com.jero.member.service.ITbMemberProjectSubitemService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.member.vo.EditMemberBenefitsVO; import com.jero.member.vo.PaymentInfo; import com.jero.member.vo.TbMemberProjectSubitemEditVO; import lombok.extern.slf4j.Slf4j; @@ -48,11 +49,11 @@ public class TbMemberProjectSubitemController extends JeroController queryPageList(TbMemberProjectSubitem tbMemberProjectSubitem, + public Result> queryPageList(TbMemberProjectSubitem tbMemberProjectSubitem, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { @@ -124,6 +125,14 @@ public class TbMemberProjectSubitemController extends JeroController editMemberBenefits(@RequestBody EditMemberBenefitsVO editMemberBenefitsVO) { + tbMemberProjectSubitemService.editMemberBenefits(editMemberBenefitsVO); + return Result.OK("编辑会员权益成功!"); + } + /** * 导出excel */ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/TbMemberProjectSubitem.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/TbMemberProjectSubitem.java index 852e06e3..5ea8c59d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/TbMemberProjectSubitem.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/TbMemberProjectSubitem.java @@ -94,10 +94,10 @@ public class TbMemberProjectSubitem implements Serializable { @Dict(dicCode = "member_type") private Integer memberType; - /**联系人id*/ - @ApiModelProperty(value = "联系人id") - @Excel(name = "联系人", width = 15, dictTable = "sys_user",dicText = "realname", dicCode = "id") - @Dict(dictTable = "sys_user",dicText = "realname", dicCode = "id") + /**会员联系人*/ + @ApiModelProperty(value = "会员联系人") + @Excel(name = "会员联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id") + @Dict(dictTable = "pay_contacts_management", dicText = "name", dicCode = "id") private String liaisonManId; /**联系人*/ @@ -375,4 +375,8 @@ public class TbMemberProjectSubitem implements Serializable { @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") private Date invalidationDate; + + @ApiModelProperty(value = "备注") + @TableField(exist = false) + private String year; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/enums/MemberStatusEnum.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/enums/MemberStatusEnum.java new file mode 100644 index 00000000..d3fde9b7 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/enums/MemberStatusEnum.java @@ -0,0 +1,35 @@ +package com.jero.member.enums; + + +public enum MemberStatusEnum { + /** + * + */ + UNPAID_FEES("未缴费", 2), + PAID("已缴费", 3), + EXPIRED("已过期",4); + + private Integer value; + private String name; + + MemberStatusEnum(String name, Integer value) { + this.value = value; + this.name = name; + } + + public Integer getValue() { + return value; + } + + public void setValue(Integer value) { + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java index 5bd168f5..6fdbb6a0 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java @@ -32,4 +32,6 @@ public interface TbMemberProjectSubitemMapper extends BaseMapper queryListByCompany(Page page,@Param("companyId") String companyId,@Param("projectType") String projectType,@Param("pack") Integer pack,@Param("packYear") String packYear); IPage pageList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + List getAllTakeEffectByCompanyId(@Param("companyId") String companyId); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml index fa0bfa5f..f653720d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml @@ -22,6 +22,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java index f1993ef3..f75f08ae 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.member.entity.TbMemberProjectSubitem; import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.member.vo.EditMemberBenefitsVO; + import java.util.List; /** @@ -78,4 +80,6 @@ public interface ITbMemberProjectSubitemService extends IService pageList(Page page, QueryWrapper queryWrapper); void ticketCollection(String id); + + void editMemberBenefits(EditMemberBenefitsVO editMemberBenefitsVO); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectSubitemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectSubitemServiceImpl.java index 5f0bcfa4..c26953a0 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectSubitemServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectSubitemServiceImpl.java @@ -1,10 +1,12 @@ package com.jero.member.service.impl; +import java.util.*; 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.enums.PaymentStatusEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.service.RolePermissionService; import com.jero.common.system.vo.LoginUser; @@ -15,8 +17,10 @@ import com.jero.mail.entity.PayMailBillProject; import com.jero.mail.service.IPayMailBillProjectService; import com.jero.mail.service.IPayMailBillService; import com.jero.member.entity.TbMemberProjectSubitem; +import com.jero.member.enums.MemberStatusEnum; import com.jero.member.mapper.TbMemberProjectSubitemMapper; import com.jero.member.service.ITbMemberProjectSubitemService; +import com.jero.member.vo.EditMemberBenefitsVO; import com.jero.pack.entity.PayPackCompanyProject; import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.payment.entity.PayConfirmPaymentRecord; @@ -27,12 +31,10 @@ import com.jero.project.common.PayProjectCommon; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService; import org.apache.shiro.SecurityUtils; -import org.hibernate.type.YesNoType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Transactional; @@ -89,8 +91,15 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl allByCompanyId = tbMemberProjectSubitemMapper.getAllTakeEffectByCompanyId(companyId); + //获取list中年份最大的数据 + Optional max = allByCompanyId.stream().max(Comparator.comparing(TbMemberProjectSubitem::getYear)); + //没有的话会返回null + return max.orElse(null); + } + + @Override + public void editMemberBenefits(EditMemberBenefitsVO editMemberBenefitsVO) { + String id = editMemberBenefitsVO.getId(); + Date effectiveDate = editMemberBenefitsVO.getEffectiveDate(); + Date invalidationDate = editMemberBenefitsVO.getInvalidationDate(); + + TbMemberProjectSubitem memberProjectSubitem = getById(id); + String companyId = memberProjectSubitem.getCompanyId(); + //获得有效数据 + TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(companyId); + if (takeEffectInfo == null || !Objects.equals(takeEffectInfo.getId(),id)){ + throw new JeroBootException("只能修改最新生效会员数据"); + } + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(TbMemberProjectSubitem::getId,id) + .set(TbMemberProjectSubitem::getEffectiveDate,effectiveDate) + .set(TbMemberProjectSubitem::getInvalidationDate,invalidationDate); + this.update(updateWrapper); + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/EditMemberBenefitsVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/EditMemberBenefitsVO.java new file mode 100644 index 00000000..0c9edd7d --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/EditMemberBenefitsVO.java @@ -0,0 +1,32 @@ +package com.jero.member.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * @author liJiaRao + * @date 2024-03-07 14:04 + */ +@Data +public class EditMemberBenefitsVO { + /**id*/ + @ApiModelProperty(value = "id") + private String id; + + /** 生效日期 */ + @ApiModelProperty(value = "生效日期") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date effectiveDate; + /** + * 失效日期 + */ + @ApiModelProperty(value = "失效日期") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date invalidationDate; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/TbMemberProjectSubitemEditVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/TbMemberProjectSubitemEditVO.java index 135649e2..35aac58f 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/TbMemberProjectSubitemEditVO.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/TbMemberProjectSubitemEditVO.java @@ -33,7 +33,6 @@ public class TbMemberProjectSubitemEditVO implements Serializable { private static final long serialVersionUID = 1L; /**id*/ - @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "id") private String id; diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml index cca83f91..0f7d9ad3 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/payment/mapper/xml/PayPaymentRecordMapper.xml @@ -193,16 +193,17 @@ 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, + tmsub.invoice_amount,tmsub.post_contact_id,'' as register_check_result,pcm.name,tmsub.payment_status,tmsub.company_id,tmsub.confirm_amount,tmsub.affirm_income, tmsub.admin_add_flag from tb_member_project tmember inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id left join sys_user su on su.id = tmember.director_id + left join pay_contacts_management pcm on pcm.id = tmsub.liaison_man_id where tmsub.amount_receivable ]]> 0 and tmsub.amount_receivable is not null - AND 1=2 + AND tmember.director_id = #{payCommonProject.principalId} AND tmember.project_name like concat('%',#{payCommonProject.chargeProject},'%') @@ -244,7 +245,7 @@ tcp.amount_receivable ]]> 0 and tcp.amount_receivable is not null - AND 1=2 + AND tmember.director_id = #{payCommonProject.principalId} AND tmember.project_name like concat('%',#{payCommonProject.chargeProject},'%') @@ -274,23 +275,23 @@ )p LEFT JOIN pay_payment_record ppr ON ppr.project_id = p.id - where - 1=1 - - AND p.receivable_amount between #{payCommonProject.startAmount} and #{payCommonProject.endAmount} - - - AND p.receivable_amount #{payCommonProject.endAmount} - - - AND p.receivable_amount =]]> #{payCommonProject.startAmount} - - - AND p.projectType = #{projectType} - - - AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate} - + + + AND p.receivable_amount between #{payCommonProject.startAmount} and #{payCommonProject.endAmount} + + + AND p.receivable_amount #{payCommonProject.endAmount} + + + AND p.receivable_amount =]]> #{payCommonProject.startAmount} + + + AND p.projectType = #{projectType} + + + AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate} + + GROUP BY p.id ORDER BY p.create_time desc @@ -451,7 +452,7 @@ tmsub.amount_receivable ]]> 0 and tmsub.amount_receivable is not null - AND 1=2 + AND tmember.director_id = #{payCommonProject.principalId} AND tmember.project_name like concat('%',#{payCommonProject.chargeProject},'%') @@ -492,7 +493,7 @@ tcp.amount_receivable ]]> 0 and tcp.amount_receivable is not null - AND 1=2 + AND tmember.director_id = #{payCommonProject.principalId} AND tmember.project_name like concat('%',#{payCommonProject.chargeProject},'%') @@ -522,23 +523,23 @@ )p LEFT JOIN pay_payment_record ppr ON ppr.project_id = p.id - where - 1=1 - - AND p.receivable_amount between #{payCommonProject.startAmount} and #{payCommonProject.endAmount} - - - AND p.receivable_amount #{payCommonProject.endAmount} - - - AND p.receivable_amount =]]> #{payCommonProject.startAmount} - - - AND p.projectType = #{projectType} - - - AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate} - + + + AND p.receivable_amount between #{payCommonProject.startAmount} and #{payCommonProject.endAmount} + + + AND p.receivable_amount #{payCommonProject.endAmount} + + + AND p.receivable_amount =]]> #{payCommonProject.startAmount} + + + AND p.projectType = #{projectType} + + + AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate} + + GROUP BY p.id ORDER BY p.create_time desc