Browse Source

缴费记录

dev
wanggongfeng 3 years ago
parent
commit
f575a80fd3
  1. 7
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberPayRecordDTO.java
  2. 17
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPayRecordController.java
  3. 5
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPayRecordDetailController.java
  4. 6
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPayRecordDao.java
  5. 7
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPayRecordDetailDao.java
  6. 13
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPayRecordService.java
  7. 135
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPayRecordServiceImpl.java
  8. 8
      epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPayRecordDao.xml
  9. 22
      epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPayRecordDetailDao.xml

7
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberPayRecordDTO.java

@ -4,6 +4,7 @@ import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
/**
@ -25,31 +26,37 @@ public class IcPartyMemberPayRecordDTO implements Serializable {
/**
* 客户Id (customer.id)
*/
@NotBlank(message = "客户Id不能为空")
private String customerId;
/**
* 党员ID
*/
@NotBlank(message = "党员ID不能为空")
private String partyMemberId;
/**
* 缴费日期
*/
@NotBlank(message = "缴费日期不能为空")
private String payDate;
/**
* 缴费金额
*/
@NotBlank(message = "缴费金额不能为空")
private BigDecimal money;
/**
* 缴费开始时间
*/
@NotBlank(message = "缴费开始时间不能为空")
private String startDate;
/**
* 缴费结束时间
*/
@NotBlank(message = "缴费结束时间不能为空")
private String endDate;
/**

17
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPayRecordController.java

@ -1,7 +1,9 @@
package com.epmet.modules.partymember.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
@ -35,7 +37,8 @@ public class IcPartyMemberPayRecordController {
@RequestMapping("page")
public Result<PageData<IcPartyMemberPayRecordDTO>> page(@RequestParam Map<String, Object> params){
PageData<IcPartyMemberPayRecordDTO> page = icPartyMemberPayRecordService.page(params);
// PageData<IcPartyMemberPayRecordDTO> page = icPartyMemberPayRecordService.page(params);
PageData<IcPartyMemberPayRecordDTO> page = icPartyMemberPayRecordService.getPhrasePage(params);
return new Result<PageData<IcPartyMemberPayRecordDTO>>().ok(page);
}
@ -47,20 +50,20 @@ public class IcPartyMemberPayRecordController {
@NoRepeatSubmit
@PostMapping("save")
public Result save(@RequestBody IcPartyMemberPayRecordDTO dto){
public Result save(@LoginUser TokenDto tokenDto, @RequestBody IcPartyMemberPayRecordDTO dto){
dto.setCustomerId(tokenDto.getCustomerId());
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
icPartyMemberPayRecordService.save(dto);
return new Result();
return icPartyMemberPayRecordService.save(dto);
}
@NoRepeatSubmit
@PostMapping("update")
public Result update(@RequestBody IcPartyMemberPayRecordDTO dto){
public Result update(@LoginUser TokenDto tokenDto, @RequestBody IcPartyMemberPayRecordDTO dto){
dto.setCustomerId(tokenDto.getCustomerId());
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
icPartyMemberPayRecordService.update(dto);
return new Result();
return icPartyMemberPayRecordService.update(dto);
}
@PostMapping("delete")

5
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPayRecordDetailController.java

@ -1,7 +1,9 @@
package com.epmet.modules.partymember.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
@ -37,7 +39,8 @@ public class IcPartyMemberPayRecordDetailController {
private IcPartyMemberPayRecordDetailService icPartyMemberPayRecordDetailService;
@RequestMapping("page")
public Result<PageData<IcPartyMemberPayRecordDetailDTO>> page(@RequestParam Map<String, Object> params){
public Result<PageData<IcPartyMemberPayRecordDetailDTO>> page(@LoginUser TokenDto tokenDto, @RequestParam Map<String, Object> params){
params.put("customerId",tokenDto.getCustomerId());
// PageData<IcPartyMemberPayRecordDetailDTO> page = icPartyMemberPayRecordDetailService.page(params);
PageData<IcPartyMemberPayRecordDetailDTO> page = icPartyMemberPayRecordDetailService.getPhrasePage(params);
return new Result<PageData<IcPartyMemberPayRecordDetailDTO>>().ok(page);

6
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPayRecordDao.java

@ -2,8 +2,12 @@ package com.epmet.modules.partymember.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.partymember.entity.IcPartyMemberPayRecordEntity;
import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDTO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* 党员缴费记录表
*
@ -13,4 +17,6 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface IcPartyMemberPayRecordDao extends BaseDao<IcPartyMemberPayRecordEntity> {
List<IcPartyMemberPayRecordDTO> selectListInfo(Map<String, Object> params);
}

7
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPayRecordDetailDao.java

@ -5,6 +5,7 @@ import com.epmet.modules.partymember.entity.IcPartyMemberPayRecordDetailEntity;
import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDetailDTO;
import com.epmet.resi.partymember.dto.partymember.form.IcPartyMemberPayRecordDetailFormDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@ -20,4 +21,10 @@ public interface IcPartyMemberPayRecordDetailDao extends BaseDao<IcPartyMemberPa
List<IcPartyMemberPayRecordDetailDTO> selectListInfo(Map<String, Object> params);
List<IcPartyMemberPayRecordDetailDTO> getpayedList(@Param("monthList") List<String> monthList,
@Param("partyMemberId") String partyMemberId,
@Param("recordId") String recordId);
void deletePayDetailByRecordId(@Param("recordId") String recordId);
}

13
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPayRecordService.java

@ -2,8 +2,10 @@ package com.epmet.modules.partymember.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.modules.partymember.entity.IcPartyMemberPayRecordEntity;
import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDTO;
import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDetailDTO;
import java.util.List;
import java.util.Map;
@ -26,6 +28,13 @@ public interface IcPartyMemberPayRecordService extends BaseService<IcPartyMember
*/
PageData<IcPartyMemberPayRecordDTO> page(Map<String, Object> params);
/**
* 分页条件查询
* @param params
* @return
*/
PageData<IcPartyMemberPayRecordDTO> getPhrasePage(Map<String, Object> params);
/**
* 默认查询
*
@ -54,7 +63,7 @@ public interface IcPartyMemberPayRecordService extends BaseService<IcPartyMember
* @author generator
* @date 2022-05-17
*/
void save(IcPartyMemberPayRecordDTO dto);
Result save(IcPartyMemberPayRecordDTO dto);
/**
* 默认更新
@ -64,7 +73,7 @@ public interface IcPartyMemberPayRecordService extends BaseService<IcPartyMember
* @author generator
* @date 2022-05-17
*/
void update(IcPartyMemberPayRecordDTO dto);
Result update(IcPartyMemberPayRecordDTO dto);
/**
* 批量删除

135
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPayRecordServiceImpl.java

@ -3,22 +3,29 @@ package com.epmet.modules.partymember.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.modules.partymember.dao.IcPartyMemberPayRecordDao;
import com.epmet.modules.partymember.dao.IcPartyMemberPayRecordDetailDao;
import com.epmet.modules.partymember.entity.IcPartyMemberPayRecordDetailEntity;
import com.epmet.modules.partymember.entity.IcPartyMemberPayRecordEntity;
import com.epmet.modules.partymember.redis.IcPartyMemberPayRecordRedis;
import com.epmet.modules.partymember.service.IcPartyMemberPayRecordDetailService;
import com.epmet.modules.partymember.service.IcPartyMemberPayRecordService;
import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDTO;
import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDetailDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* 党员缴费记录表
@ -32,6 +39,12 @@ public class IcPartyMemberPayRecordServiceImpl extends BaseServiceImpl<IcPartyMe
@Autowired
private IcPartyMemberPayRecordRedis icPartyMemberPayRecordRedis;
@Autowired
private IcPartyMemberPayRecordDetailService icPartyMemberPayRecordDetailService;
@Autowired
private IcPartyMemberPayRecordDetailDao icPartyMemberPayRecordDetailDao;
@Override
public PageData<IcPartyMemberPayRecordDTO> page(Map<String, Object> params) {
IPage<IcPartyMemberPayRecordEntity> page = baseDao.selectPage(
@ -41,6 +54,23 @@ public class IcPartyMemberPayRecordServiceImpl extends BaseServiceImpl<IcPartyMe
return getPageData(page, IcPartyMemberPayRecordDTO.class);
}
/**
* 条件查询
* @param params
* @return
*/
@Override
public PageData<IcPartyMemberPayRecordDTO> getPhrasePage(Map<String, Object> params) {
String partyMemberId = params.get("partyMemberId") == null ? "" : params.get("partyMemberId").toString();
if(StringUtils.isBlank(partyMemberId)){
throw new RenException("党员ID不能为空");
}
IPage<IcPartyMemberPayRecordDTO> page = getPage(params);
List<IcPartyMemberPayRecordDTO> list = baseDao.selectListInfo(params);
return new PageData<>(list, page.getTotal());
}
@Override
public List<IcPartyMemberPayRecordDTO> list(Map<String, Object> params) {
List<IcPartyMemberPayRecordEntity> entityList = baseDao.selectList(getWrapper(params));
@ -65,16 +95,50 @@ public class IcPartyMemberPayRecordServiceImpl extends BaseServiceImpl<IcPartyMe
@Override
@Transactional(rollbackFor = Exception.class)
public void save(IcPartyMemberPayRecordDTO dto) {
public Result save(IcPartyMemberPayRecordDTO dto) {
// 根据起始时间转月份列表
List<String> monthList = getMonthList(dto.getStartDate(),dto.getEndDate());
// 校验是否有月份已缴费
List<IcPartyMemberPayRecordDetailDTO> payedList = icPartyMemberPayRecordDetailDao.getpayedList(monthList,dto.getPartyMemberId(),"");
if(payedList.size() > 0){
return new Result().error("存在已缴费月份,请重新录入");
}
// 保存党员缴费记录表信息
IcPartyMemberPayRecordEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyMemberPayRecordEntity.class);
insert(entity);
// 保存党员缴费记录明细
saveDetailInfo(monthList,entity);
return new Result();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(IcPartyMemberPayRecordDTO dto) {
public Result update(IcPartyMemberPayRecordDTO dto) {
// 根据起始时间转月份列表
List<String> monthList = getMonthList(dto.getStartDate(),dto.getEndDate());
// 校验本次修改是否有月份已缴费(除该主键下的月份)
List<IcPartyMemberPayRecordDetailDTO> payedList = icPartyMemberPayRecordDetailDao.getpayedList(monthList,dto.getPartyMemberId(),dto.getId());
if(payedList.size() > 0){
return new Result().error("存在已缴费月份,请重新录入");
}
// 更新党员缴费记录表信息
IcPartyMemberPayRecordEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyMemberPayRecordEntity.class);
updateById(entity);
// 清空该记录表主键下的党员缴费记录明细
icPartyMemberPayRecordDetailDao.deletePayDetailByRecordId(dto.getId());
// 保存党员缴费记录明细
saveDetailInfo(monthList,entity);
return new Result();
}
@Override
@ -82,6 +146,67 @@ public class IcPartyMemberPayRecordServiceImpl extends BaseServiceImpl<IcPartyMe
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
// 删除党员缴费记录明细
icPartyMemberPayRecordDetailDao.deletePayDetailByRecordId(ids[0]);
}
/**
* 根据起始时间获取该时间段所包含的所有月份返回list
*
* @param startTime
* @param endTime
* @return
*/
public List<String> getMonthList(String startTime, String endTime){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
// 声明保存日期集合
List<String> list = new ArrayList<String>();
try {
// 转化成日期类型
Date startDate = sdf.parse(startTime);
Date endDate = sdf.parse(endTime);
//用Calendar 进行日期比较判断
Calendar calendar = Calendar.getInstance();
while (startDate.getTime()<=endDate.getTime()){
// 把日期添加到集合
list.add(sdf.format(startDate));
// 设置日期
calendar.setTime(startDate);
//把日期增加一天
calendar.add(Calendar.MONTH, 1);
// 获取增加后的日期
startDate=calendar.getTime();
}
} catch (ParseException e) {
e.printStackTrace();
}
return list;
}
public void saveDetailInfo(List<String> monthList,IcPartyMemberPayRecordEntity entity){
// 组装党员缴费记录明细实体
BigDecimal money = entity.getMoney();
// 求本次缴费的月份平均缴费金额
BigDecimal moneyDivide = money.divide(new BigDecimal(monthList.size()),2,BigDecimal.ROUND_HALF_UP);
List<IcPartyMemberPayRecordDetailEntity> detailList = new ArrayList<IcPartyMemberPayRecordDetailEntity>();
for(int i = 0 ; i < monthList.size() ; i++){
IcPartyMemberPayRecordDetailEntity detailEntity = new IcPartyMemberPayRecordDetailEntity();
detailEntity.setCustomerId(entity.getCustomerId());
detailEntity.setRecordId(entity.getId());
detailEntity.setMoney(moneyDivide);
detailEntity.setPartyMemberId(entity.getPartyMemberId());
String year = monthList.get(i).substring(0,4);
String month = monthList.get(i).substring(5,7);
detailEntity.setYear(year);
detailEntity.setMonth(month);
detailList.add(detailEntity);
}
// 保存党员缴费记录明细表信息
icPartyMemberPayRecordDetailService.insertBatch(detailList);
}
}

8
epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPayRecordDao.xml

@ -19,5 +19,13 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectListInfo" resultType="com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDTO">
select
*
from ic_party_member_pay_record
where DEL_FLAG = 0
and PARTY_MEMBER_ID = #{partyMemberId}
</select>
</mapper>

22
epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPayRecordDetailDao.xml

@ -33,6 +33,7 @@
left join ic_party_org org on org.ID = pm.SSZB and org.DEL_FLAG = 0
where prd.DEL_FLAG = 0
and pm.DEL_FLAG = 0
and prd.CUSTOMER_ID = #{customerId}
<if test='name != "" and name != null'>
and pm.NAME like concat('%',#{name},'%')
</if>
@ -58,6 +59,27 @@
group by prd.PARTY_MEMBER_ID
order by pm.SSZB,pm.CREATED_TIME desc
</select>
<select id="getpayedList" resultType="com.epmet.resi.partymember.dto.partymember.IcPartyMemberPayRecordDetailDTO">
select
prd.*
from ic_party_member_pay_record_detail prd
where prd.DEL_FLAG = 0
AND CONCAT(prd.YEAR,'-',prd.MONTH) IN
<foreach collection="monthList" index="index" item="month" open="(" separator="," close=")">
#{month}
</foreach>
<if test='partyMemberId != "" and partyMemberId != null'>
and prd.PARTY_MEMBER_ID = #{partyMemberId}
</if>
<if test='recordId != "" and recordId != null'>
and prd.RECORD_ID != #{recordId}
</if>
</select>
<update id="deletePayDetailByRecordId">
update ic_party_member_pay_record_detail set DEL_FLAG = 1
where RECORD_ID = #{recordId}
</update>
</mapper>

Loading…
Cancel
Save