Parcourir la source

增加账本收款日期

xda il y a 2 ans
Parent
commit
399adb9e9b

+ 0 - 2
src/main/java/com/winhc/repal/controller/RepalBillController.java

@@ -2,11 +2,9 @@ package com.winhc.repal.controller;
 
 import com.winhc.common.base.BeanResponse;
 import com.winhc.common.enums.CodeMsg;
-import com.winhc.common.model.base.VOPage;
 import com.winhc.repal.model.dto.*;
 import com.winhc.repal.model.vo.RepalBillDetailVO;
 import com.winhc.repal.model.vo.RepalBillInfoVO;
-import com.winhc.repal.model.vo.RepalBillPageVO;
 import com.winhc.repal.service.RepalBillService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;

+ 10 - 0
src/main/java/com/winhc/repal/controller/RepalGroupController.java

@@ -6,6 +6,7 @@ import com.winhc.common.model.base.VOPage;
 import com.winhc.repal.model.dto.InitGroupDTO;
 import com.winhc.repal.model.dto.PageDTO;
 import com.winhc.repal.model.vo.GroupMemberVo;
+import com.winhc.repal.model.vo.GroupRoleMemberVO;
 import com.winhc.repal.service.RepalGroupService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -15,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * @Description: RepalGroupController
  * @Author: xda
@@ -41,5 +44,12 @@ public class RepalGroupController {
         return BeanResponse.success(CodeMsg.SUCCESS, repalGroupService.getGroupMemberList(dto));
     }
 
+    @ApiOperation("成员管理列表")
+    @RequestMapping(value = "/roleMember", method = RequestMethod.GET)
+    public BeanResponse<List<GroupRoleMemberVO>> getGroupRoleMemberList() {
+        return BeanResponse.success(CodeMsg.SUCCESS, repalGroupService.getGroupRoleMemberList());
+    }
+
+
 
 }

+ 7 - 8
src/main/java/com/winhc/repal/entity/RepalChangeRecord.java

@@ -4,6 +4,8 @@ import java.math.BigDecimal;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
@@ -57,18 +59,15 @@ public class RepalChangeRecord implements Serializable {
     @TableField("OPER_USER_ID")
     private Long operUserId;
 
+    @ApiModelProperty("记录日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate recordDate;
+
     @ApiModelProperty(value = "操作人name")
     @TableField("OPER_USER_NAME")
     private String operUserName;
 
-    @ApiModelProperty(value = "备注")
-    @TableField("REMARK")
-    private String remark;
-
-    @ApiModelProperty(value = "附件url,逗号分隔")
-    @TableField("FILE_URL")
-    private String fileUrl;
-
     @ApiModelProperty(value = "是否删除,1删除。0否")
     @TableField("DELETED")
     private Integer deleted;

+ 8 - 0
src/main/java/com/winhc/repal/model/dto/SettleRepalBillDTO.java

@@ -1,10 +1,13 @@
 package com.winhc.repal.model.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 
 /**
  * @Description: SettleRepalBillDTO
@@ -21,4 +24,9 @@ public class SettleRepalBillDTO {
     @ApiModelProperty("金额,string类型")
     private BigDecimal money;
 
+    @ApiModelProperty("日期,string, yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    public LocalDate recordDate;
+
 }

+ 50 - 0
src/main/java/com/winhc/repal/model/vo/GroupRoleMemberVO.java

@@ -0,0 +1,50 @@
+package com.winhc.repal.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+import java.util.List;
+
+/**
+ * @Description: GroupRoleMemberVO
+ * @Author: xda
+ * @Date: 2022/5/10 14:05
+ */
+@Data
+@ApiModel("组织角色成员vo")
+public class GroupRoleMemberVO {
+
+    @ApiModelProperty("角色name")
+    private String roleName;
+
+    @ApiModelProperty("roleId")
+    private Long roleId;
+
+    @ApiModelProperty("成员列表")
+    private List<RoleMemberVO> roleMemberList;
+
+    @Getter
+    @Setter
+    @AllArgsConstructor
+    @NoArgsConstructor
+    @ApiModel("角色成员")
+    @ToString
+    public static class RoleMemberVO {
+
+        @ApiModelProperty("用户id")
+        private Long userId;
+
+        @ApiModelProperty("角色name")
+        private String memberName;
+
+        @ApiModelProperty("头像")
+        private String avatar;
+
+        @ApiModelProperty("成员id")
+        private Long memberId;
+
+    }
+
+
+}

+ 3 - 2
src/main/java/com/winhc/repal/repository/RepalChangeRecordMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -29,7 +30,7 @@ public interface RepalChangeRecordMapper extends BaseMapper<RepalChangeRecord> {
      */
     List<RepalChangeRecord> getHomeRecord(@Param("userId") Long userId,
                                           @Param("repalBookId") Long repalBookId,
-                                          @Param("start") LocalDateTime start,
-                                          @Param("end") LocalDateTime end);
+                                          @Param("start") LocalDate start,
+                                          @Param("end") LocalDate end);
 
 }

+ 3 - 2
src/main/java/com/winhc/repal/service/RepalChangeRecordService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.winhc.repal.entity.RepalChangeRecord;
 import org.apache.ibatis.annotations.Param;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -27,7 +28,7 @@ public interface RepalChangeRecordService extends IService<RepalChangeRecord> {
      */
     List<RepalChangeRecord> getHomeRecord(Long userId,
                                           Long repalBookId,
-                                          LocalDateTime start,
-                                          LocalDateTime end);
+                                          LocalDate start,
+                                          LocalDate end);
 
 }

+ 12 - 0
src/main/java/com/winhc/repal/service/RepalGroupMemberService.java

@@ -2,6 +2,9 @@ package com.winhc.repal.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.winhc.repal.entity.RepalGroupMember;
+import com.winhc.repal.model.vo.GroupRoleMemberVO;
+
+import java.util.List;
 
 
 /**
@@ -53,4 +56,13 @@ public interface RepalGroupMemberService extends IService<RepalGroupMember> {
     Boolean getMemberVisible(Integer type);
 
 
+    /**
+     * 获取组织角色成员列表
+     * @return java.util.List<com.winhc.repal.model.vo.GroupRoleMemberVO>
+     * @author xda
+     * @date 2022/5/10 14:47
+     */
+    List<GroupRoleMemberVO> getGroupRoleMemberList();
+
+
 }

+ 10 - 0
src/main/java/com/winhc/repal/service/RepalGroupRoleService.java

@@ -3,6 +3,8 @@ package com.winhc.repal.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.winhc.repal.entity.RepalGroupRole;
 
+import java.util.List;
+
 
 /**
  * @description RepalGroupRoleMember 接口类
@@ -11,6 +13,14 @@ import com.winhc.repal.entity.RepalGroupRole;
  */
 public interface RepalGroupRoleService extends IService<RepalGroupRole> {
 
+    /**
+     * 根据角色id获取角色信息
+     * @param idList idList
+     * @return java.util.List<com.winhc.repal.entity.RepalGroupRole>
+     * @author xda
+     * @date 2022/5/10 15:02
+     */
+    List<RepalGroupRole> getRoleByIdList(List<Long> idList);
 
 
 }

+ 11 - 0
src/main/java/com/winhc/repal/service/RepalGroupService.java

@@ -6,6 +6,9 @@ import com.winhc.repal.entity.RepalGroup;
 import com.winhc.repal.model.dto.InitGroupDTO;
 import com.winhc.repal.model.dto.PageDTO;
 import com.winhc.repal.model.vo.GroupMemberVo;
+import com.winhc.repal.model.vo.GroupRoleMemberVO;
+
+import java.util.List;
 
 
 /**
@@ -35,4 +38,12 @@ public interface RepalGroupService extends IService<RepalGroup> {
      */
     VOPage<GroupMemberVo> getGroupMemberList(PageDTO dto);
 
+    /**
+     * 获取组织角色成员列表
+     * @return java.util.List<com.winhc.repal.model.vo.GroupRoleMemberVO>
+     * @author xda
+     * @date 2022/5/10 14:44
+     */
+    List<GroupRoleMemberVO> getGroupRoleMemberList();
+
 }

+ 1 - 0
src/main/java/com/winhc/repal/service/impl/RepalBillServiceImpl.java

@@ -341,6 +341,7 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
         changeRecord.setPreMoney(repalBill.getReceivable());
         changeRecord.setTransMoney(repalBill.getReceivable());
         changeRecord.setOperUserId(UserContextUtil.getUser().getUserId());
+        changeRecord.setRecordDate(dto.getRecordDate());
         UserExt userExt = userExtService.getById(changeRecord.getOperUserId());
         changeRecord.setOperUserName(userExt.getUserName());
         repalChangeRecordService.save(changeRecord);

+ 7 - 8
src/main/java/com/winhc/repal/service/impl/RepalBookServiceImpl.java

@@ -215,17 +215,16 @@ public class RepalBookServiceImpl extends ServiceImpl<RepalBookMapper, RepalBook
     public List<ReturnedMoneyVO> getGraph(HomeTypeDTO dto) {
         boolean allFlag = repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(), PermissionEnum.QUERY_ALL_RECEIVABLE.getCode());
         long userId = UserContextUtil.getUser().getUserId();
-        LocalDateTime start = null;
-        LocalDateTime end = null;
+        LocalDate start = null;
+        LocalDate end = null;
+        LocalDate now = LocalDate.now();
         if (Integer.valueOf(1).equals(dto.getQueryType())) {
-            LocalDate now = LocalDate.now();
-            start = LocalDateTime.of(now.minusDays(7), LocalTime.MIN);
-            end = LocalDateTime.of(now, LocalTime.MAX);
+            start = now.minusDays(7);
+            end =now;
         }
         if (Integer.valueOf(2).equals(dto.getQueryType())) {
-            LocalDate now = LocalDate.now();
-            start = LocalDateTime.of(now.minusDays(30), LocalTime.MIN);
-            end = LocalDateTime.of(now, LocalTime.MAX);
+            start = now.minusDays(30);
+            end = now;
         }
         List<RepalChangeRecord> recordList = repalChangeRecordService.getHomeRecord(allFlag ? null : userId, dto.getRepalBookId(), start, end);
         if (CollUtil.isEmpty(recordList)) {

+ 2 - 1
src/main/java/com/winhc/repal/service/impl/RepalChangeRecordServiceImpl.java

@@ -7,6 +7,7 @@ import com.winhc.repal.service.RepalChangeRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -22,7 +23,7 @@ public class RepalChangeRecordServiceImpl extends ServiceImpl<RepalChangeRecordM
     private RepalChangeRecordMapper repalChangeRecordMapper;
 
     @Override
-    public List<RepalChangeRecord> getHomeRecord(Long userId, Long repalBookId, LocalDateTime start, LocalDateTime end) {
+    public List<RepalChangeRecord> getHomeRecord(Long userId, Long repalBookId, LocalDate start, LocalDate end) {
         return repalChangeRecordMapper.getHomeRecord(userId, repalBookId, start, end);
     }
 }

+ 45 - 1
src/main/java/com/winhc/repal/service/impl/RepalGroupMemberServiceImpl.java

@@ -1,20 +1,26 @@
 package com.winhc.repal.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.winhc.common.enums.CodeMsg;
 import com.winhc.common.exception.CommonException;
 import com.winhc.repal.entity.RepalGroupMember;
+import com.winhc.repal.entity.RepalGroupRole;
+import com.winhc.repal.entity.UserExt;
 import com.winhc.repal.enums.DeletedStatusEnum;
 import com.winhc.repal.enums.RepalBillTypeEnum;
+import com.winhc.repal.model.vo.GroupRoleMemberVO;
 import com.winhc.repal.repository.RepalGroupMemberMapper;
 import com.winhc.repal.service.RepalGroupMemberService;
+import com.winhc.repal.service.RepalGroupRoleService;
 import com.winhc.repal.service.UserExtService;
 import com.winhc.repal.util.UserContextUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @description RepalGroupMember 接口实现类
@@ -30,6 +36,12 @@ public class RepalGroupMemberServiceImpl extends ServiceImpl<RepalGroupMemberMap
     @Autowired
     private RepalGroupMemberMapper repalGroupMemberMapper;
 
+    @Autowired
+    private RepalGroupMemberService repalGroupMemberService;
+
+    @Autowired
+    private RepalGroupRoleService repalGroupRoleService;
+
     @Override
     public Long getUserGroupId(Long userId) {
         RepalGroupMember repalGroupMember = this.getOne(Wrappers.lambdaQuery(RepalGroupMember.class)
@@ -66,4 +78,36 @@ public class RepalGroupMemberServiceImpl extends ServiceImpl<RepalGroupMemberMap
                 .eq(RepalGroupMember::getDeleted, DeletedStatusEnum.NORMAL.getCode()));
         return (RepalBillTypeEnum.RECEIVABLE.getCode().equals(type) ? member.getReceivable() : member.getReceipt()) > 0;
     }
+
+    @Override
+    public List<GroupRoleMemberVO> getGroupRoleMemberList() {
+        long userId = UserContextUtil.getUser().getUserId();
+        long groupId = repalGroupMemberService.getUserGroupId(userId);
+        List<RepalGroupMember> memberList = this.list(Wrappers.lambdaQuery(RepalGroupMember.class)
+            .eq(RepalGroupMember::getRepalGroupId, groupId)
+            .eq(RepalGroupMember::getDeleted, DeletedStatusEnum.NORMAL.getCode()));
+        if (CollUtil.isEmpty(memberList)) {
+            return new ArrayList<>();
+        }
+        List<RepalGroupRole> roleList = repalGroupRoleService.getRoleByIdList(memberList.stream().map(RepalGroupMember::getRoleId).distinct().collect(Collectors.toList()));
+        Map<Long, String> roleNameMap = roleList.stream().collect(Collectors.toMap(RepalGroupRole::getId, RepalGroupRole::getRoleName));
+        Map<Long, List<RepalGroupMember>> memberMap = memberList.stream().collect(Collectors.groupingBy(RepalGroupMember::getRoleId, Collectors.toList()));
+        List<GroupRoleMemberVO> resultList = new ArrayList<>();
+        for (Map.Entry<Long, List<RepalGroupMember>> entry : memberMap.entrySet()) {
+            GroupRoleMemberVO vo = new GroupRoleMemberVO();
+            vo.setRoleId(entry.getKey());
+            vo.setRoleName(roleNameMap.get(entry.getKey()));
+            vo.setRoleMemberList(entry.getValue().stream().map(t -> {
+                GroupRoleMemberVO.RoleMemberVO roleMemberVO = new GroupRoleMemberVO.RoleMemberVO();
+                roleMemberVO.setMemberId(t.getId());
+                roleMemberVO.setMemberName(t.getMemberUserName());
+                roleMemberVO.setUserId(t.getUserId());
+                // todo
+                //roleMemberVO.setAvatar();
+                return roleMemberVO;
+            }).sorted(Comparator.comparing(GroupRoleMemberVO.RoleMemberVO::getMemberId).reversed()).collect(Collectors.toList()));
+            resultList.add(vo);
+        }
+        return resultList.stream().sorted(Comparator.comparing(GroupRoleMemberVO::getRoleId)).collect(Collectors.toList());
+    }
 }

+ 6 - 0
src/main/java/com/winhc/repal/service/impl/RepalGroupRoleServiceImpl.java

@@ -6,6 +6,8 @@ import com.winhc.repal.repository.RepalGroupRoleMapper;
 import com.winhc.repal.service.RepalGroupRoleService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * @description RepalGroupRole 接口实现类
  * @author Generator
@@ -15,4 +17,8 @@ import org.springframework.stereotype.Service;
 public class RepalGroupRoleServiceImpl extends ServiceImpl<RepalGroupRoleMapper, RepalGroupRole> implements RepalGroupRoleService {
 
 
+    @Override
+    public List<RepalGroupRole> getRoleByIdList(List<Long> idList) {
+        return this.listByIds(idList);
+    }
 }

+ 7 - 0
src/main/java/com/winhc/repal/service/impl/RepalGroupServiceImpl.java

@@ -13,6 +13,7 @@ import com.winhc.repal.enums.RoleTypeEnum;
 import com.winhc.repal.model.dto.InitGroupDTO;
 import com.winhc.repal.model.dto.PageDTO;
 import com.winhc.repal.model.vo.GroupMemberVo;
+import com.winhc.repal.model.vo.GroupRoleMemberVO;
 import com.winhc.repal.repository.RepalGroupMapper;
 import com.winhc.repal.service.RepalBookService;
 import com.winhc.repal.service.RepalGroupMemberService;
@@ -25,6 +26,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
 
@@ -93,4 +95,9 @@ public class RepalGroupServiceImpl extends ServiceImpl<RepalGroupMapper, RepalGr
         voPage.setDataList(page.getRecords().stream().map(t -> new GroupMemberVo(t.getUserId(), t.getMemberUserName())).collect(Collectors.toList()));
         return voPage;
     }
+
+    @Override
+    public List<GroupRoleMemberVO> getGroupRoleMemberList() {
+        return repalGroupMemberService.getGroupRoleMemberList();
+    }
 }

+ 9 - 5
src/main/resources/mapper/RepalChangeRecordMapper.xml

@@ -4,17 +4,21 @@
 
 
     <select id="getHomeRecord" resultType="com.winhc.repal.entity.RepalChangeRecord">
-        SELECT record.TIME_CREATED as timeCreated, record.TRANS_MONEY as transMoney FROM REPAL_CHANGE_RECORD AS record
+        SELECT record.RECORD_DATE as recordDate, IFNULL(SUM(record.TRANS_MONEY),0) as transMoney FROM REPAL_CHANGE_RECORD AS record
         LEFT JOIN REPAL_BILL AS bill ON bill.ID = record.REPAL_BILL_ID
-        LEFT JOIN REPAL_RESPONSIBLE_PERSON AS rPerson ON record.REPAL_BILL_ID = rPerson.REPAL_BILL_ID
+        <if test="userId != null">
+            LEFT JOIN REPAL_RESPONSIBLE_PERSON AS rPerson ON record.REPAL_BILL_ID = rPerson.REPAL_BILL_ID
+        </if>
         WHERE record.REPAL_BOOK_ID = #{repalBookId}
         <if test="start != null">
-            AND  record.TIME_CREATED >= #{start}
+            AND  record.RECORD_DATE >= #{start}
         </if>
         <if test="end != null">
-            AND  record.TIME_CREATED <![CDATA[<=]]>#{end}
+            AND  record.RECORD_DATE <![CDATA[<=]]>#{end}
+        </if>
+        <if test="userId != null">
+            AND rPerson.USER_ID = #{userId}
         </if>
-        AND rPerson.USER_ID = #{userId}
         AND bill.REPAL_BILL_TYPE = 1
     </select>