Pārlūkot izejas kodu

账款列表查询

xda 3 gadi atpakaļ
vecāks
revīzija
fc139a5e12

+ 23 - 1
src/main/java/com/winhc/repal/entity/RepalResponsiblePerson.java

@@ -3,18 +3,22 @@ package com.winhc.repal.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * @description RepalResponsiblePerson实体对象
  * @author Generator
- * @date 2022-04-08
+ * @date 2022-04-13
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -29,6 +33,10 @@ public class RepalResponsiblePerson implements Serializable {
     @TableId(value = "ID", type = IdType.AUTO)
     private Long id;
 
+    @ApiModelProperty(value = "组织id")
+    @TableField("REPAL_GROUP_ID")
+    private Long repalGroupId;
+
     @ApiModelProperty(value = "账本id")
     @TableField("REPAL_BOOK_ID")
     private Long repalBookId;
@@ -41,5 +49,19 @@ public class RepalResponsiblePerson implements Serializable {
     @TableField("USER_ID")
     private Long userId;
 
+    @ApiModelProperty(value = "是否删除。1是。0否。")
+    @TableField("DELETED")
+    private Integer deleted;
+
+    @TableField("TIME_CREATED")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime timeCreated;
+
+    @TableField("TIME_MODIFIED")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime timeModified;
+
 
 }

+ 1 - 1
src/main/java/com/winhc/repal/exception/ExceptionHandle.java

@@ -37,7 +37,7 @@ public class ExceptionHandle {
      */
     @ExceptionHandler(value = CommonException.class)
     public BeanResponse<Void> commonExceptionHandle(CommonException commonException) {
-        log.error("通用异常", commonException);
+        //log.info(commonException.getMessage(), commonException);
         return BeanResponse.error(CodeMsg.FAILED.getCode(), commonException.getMessage());
     }
 

+ 3 - 1
src/main/java/com/winhc/repal/model/dto/GetRepalBillPageDTO.java

@@ -1,6 +1,5 @@
 package com.winhc.repal.model.dto;
 
-import com.winhc.common.model.base.VOPage;
 import com.winhc.repal.model.bo.PageRequest;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -20,6 +19,9 @@ import java.time.LocalDate;
 @ApiModel("获取账本下的账款列表")
 public class GetRepalBillPageDTO extends PageRequest {
 
+    @ApiModelProperty(value = "组织id")
+    private Long repalGroupId;
+
     @ApiModelProperty("账本id")
     private Long repalBookId;
 

+ 2 - 0
src/main/java/com/winhc/repal/model/vo/RepalBillPageVO.java

@@ -17,6 +17,8 @@ import java.util.List;
 @ApiModel("账款分页对象")
 public class RepalBillPageVO {
 
+
+
     @ApiModelProperty(value = "账款id")
     private Long repalBillId;
 

+ 20 - 0
src/main/java/com/winhc/repal/model/vo/ResponsiblePersonNameVO.java

@@ -0,0 +1,20 @@
+package com.winhc.repal.model.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description: ResponsiblePersonNameVO
+ * @Author: xda
+ * @Date: 2022/4/13 18:21
+ */
+@Data
+public class ResponsiblePersonNameVO {
+
+    @ApiModelProperty(value = "账款id")
+    private Long repalBillId;
+
+    @ApiModelProperty(value = "责任人name")
+    private String userName;
+
+}

+ 16 - 0
src/main/java/com/winhc/repal/repository/RepalBillMapper.java

@@ -1,13 +1,29 @@
 package com.winhc.repal.repository;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.winhc.repal.entity.RepalBill;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.winhc.repal.model.dto.GetRepalBillPageDTO;
+import org.springframework.stereotype.Repository;
 
 /**
  * @description RepalBill Mapper 接口
  * @author Generator
  * @date 2022-04-08
  */
+@Repository
 public interface RepalBillMapper extends BaseMapper<RepalBill> {
 
+
+    /**
+     * 获取账款列表
+     * @param page page
+     * @param dto dto
+     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.winhc.repal.entity.RepalBill>
+     * @author xda
+     * @date 2022/4/13 17:44
+     */
+    Page<RepalBill> getRepalBillPage(Page<RepalBill> page, GetRepalBillPageDTO dto);
+
+
 }

+ 17 - 2
src/main/java/com/winhc/repal/repository/RepalResponsiblePersonMapper.java

@@ -1,13 +1,28 @@
 package com.winhc.repal.repository;
 
-import com.winhc.repal.entity.RepalResponsiblePerson;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.winhc.repal.entity.RepalResponsiblePerson;
+import com.winhc.repal.model.vo.ResponsiblePersonNameVO;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
 
 /**
  * @description RepalResponsiblePerson Mapper 接口
  * @author Generator
- * @date 2022-04-08
+ * @date 2022-04-13
  */
+@Repository
 public interface RepalResponsiblePersonMapper extends BaseMapper<RepalResponsiblePerson> {
 
+
+    /**
+     * 获取账款对应的负责人name
+     * @param billIdList billIdList
+     * @return java.util.List<com.winhc.repal.model.vo.ResponsiblePersonNameVO>
+     * @author xda
+     * @date 2022/4/13 18:29
+     */
+    List<ResponsiblePersonNameVO> getResponsiblePersonNameList(List<Long> billIdList);
+
 }

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

@@ -3,6 +3,9 @@ package com.winhc.repal.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.winhc.repal.entity.RepalResponsiblePerson;
 
+import java.util.List;
+import java.util.Map;
+
 
 /**
  * @description RepalResponsiblePerson 接口类
@@ -12,4 +15,13 @@ import com.winhc.repal.entity.RepalResponsiblePerson;
 public interface RepalResponsiblePersonService extends IService<RepalResponsiblePerson> {
 
 
+    /**
+     * 获取账款对应的负责人name
+     * @param billIdList billIdList
+     * @return java.util.Map<java.lang.Long, java.util.List < java.lang.String>>
+     * @author xda
+     * @date 2022/4/13 18:37
+     */
+    Map<Long, List<String>> getResponsiblePersonNameList(List<Long> billIdList);
+
 }

+ 50 - 3
src/main/java/com/winhc/repal/service/impl/RepalBillServiceImpl.java

@@ -1,14 +1,30 @@
 package com.winhc.repal.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.winhc.common.enums.CodeMsg;
+import com.winhc.common.exception.CommonException;
 import com.winhc.common.model.base.VOPage;
 import com.winhc.repal.entity.RepalBill;
 import com.winhc.repal.model.dto.GetRepalBillPageDTO;
 import com.winhc.repal.model.vo.RepalBillPageVO;
 import com.winhc.repal.repository.RepalBillMapper;
 import com.winhc.repal.service.RepalBillService;
+import com.winhc.repal.service.RepalResponsiblePersonService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
 /**
  * @description RepalBill 接口实现类
  * @author Generator
@@ -17,12 +33,43 @@ import org.springframework.stereotype.Service;
 @Service
 public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill> implements RepalBillService {
 
+    public static final Logger LOGGER = LoggerFactory.getLogger(RepalBillServiceImpl.class);
+
+    @Autowired
+    private RepalBillMapper repalBillMapper;
+
+    @Autowired
+    private RepalResponsiblePersonService repalResponsiblePersonService;
 
     @Override
     public VOPage<RepalBillPageVO> getRepalBillPage(GetRepalBillPageDTO dto) {
+        if (ObjectUtil.hasEmpty(dto.getRepalGroupId(), dto.getRepalBookId())) {
+            throw new CommonException(CodeMsg.VALIDATE_PARAMETER);
+        }
+        VOPage<RepalBillPageVO> voPage = new VOPage<>();
+        voPage.setPageSize(dto.getPageSize());
+        voPage.setPageNum(dto.getPageNum());
+        // 管理员查看所有   todo
+        LOGGER.info("角色:[]");
+        Page<RepalBill> repalBillPage = new Page<>(dto.getPageNum(),dto.getPageSize());
+        repalBillPage = repalBillMapper.getRepalBillPage(repalBillPage, dto);
+        voPage.setTotalPage(Math.toIntExact(repalBillPage.getPages()));
+        voPage.setTotalNum(repalBillPage.getTotal());
+        if (CollUtil.isEmpty(repalBillPage.getRecords())) {
+            voPage.setDataList(new ArrayList<>());
+            return voPage;
+        }
+        List<Long> billIdList = repalBillPage.getRecords().stream().map(RepalBill::getId).collect(Collectors.toList());
+        Map<Long, List<String>> nameMap = repalResponsiblePersonService.getResponsiblePersonNameList(billIdList);
+        voPage.setDataList(repalBillPage.getRecords().stream().map(t -> {
+            RepalBillPageVO vo = new RepalBillPageVO();
+            BeanUtils.copyProperties(t, vo);
+            vo.setRepalBillId(t.getId());
+            vo.setResponsiblePersonNames(String.join("、", nameMap.get(t.getId())));
+            return vo;
+        }).collect(Collectors.toList()));
+        return voPage;
+    }
 
 
-
-        return null;
-    }
 }

+ 21 - 0
src/main/java/com/winhc/repal/service/impl/RepalResponsiblePersonServiceImpl.java

@@ -1,11 +1,19 @@
 package com.winhc.repal.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.winhc.repal.entity.RepalResponsiblePerson;
+import com.winhc.repal.model.vo.ResponsiblePersonNameVO;
 import com.winhc.repal.repository.RepalResponsiblePersonMapper;
 import com.winhc.repal.service.RepalResponsiblePersonService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 /**
  * @description RepalResponsiblePerson 接口实现类
  * @author Generator
@@ -14,5 +22,18 @@ import org.springframework.stereotype.Service;
 @Service
 public class RepalResponsiblePersonServiceImpl extends ServiceImpl<RepalResponsiblePersonMapper, RepalResponsiblePerson> implements RepalResponsiblePersonService {
 
+    @Autowired
+    private RepalResponsiblePersonMapper repalResponsiblePersonMapper;
 
+    @Override
+    public Map<Long, List<String>> getResponsiblePersonNameList(List<Long> billIdList) {
+        if (CollUtil.isEmpty(billIdList)) {
+            return new HashMap<>();
+        }
+        List<ResponsiblePersonNameVO> nameList = repalResponsiblePersonMapper.getResponsiblePersonNameList(billIdList);
+        if (CollUtil.isEmpty(nameList)) {
+            return new HashMap<>();
+        }
+        return nameList.stream().collect(Collectors.groupingBy(ResponsiblePersonNameVO::getRepalBillId, Collectors.mapping(ResponsiblePersonNameVO::getUserName, Collectors.toList())));
+    }
 }

+ 8 - 2
src/main/resources/log4j2.xml

@@ -5,6 +5,12 @@
     当设置成trace时,你会看到log4j2内部各种详细输出-->
 <!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
 <configuration status="warn" monitorInterval="30">
+
+<!--    <Properties>-->
+<!--        <property name="LOG_PATH" value="${env:LOG_FILE_PATH:-/data/log/repal-service}/repal-service.log"/>-->
+<!--        <property name="LOG_FILE_PATTERN" value="${env:LOG_FILE_PATH:-/data/log}/repal-service}/$${date:yyyy-MM}/log-%d{yyyy-MM-dd}-%i.log"/>-->
+<!--    </Properties>-->
+
     <!--先定义所有的appender-->
     <appenders>
         <!--这个输出控制台的配置-->
@@ -19,8 +25,8 @@
         </File>-->
         <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,
         则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
-        <RollingFile name="RollingFileDebug" fileName="/data/logs/return-money-service/repal-service.log"
-                     filePattern="/data/logs/return-money-service/$${date:yyyy-MM}/log-%d{yyyy-MM-dd}-%i.log">
+        <RollingFile name="RollingFileDebug" fileName="/data/log/repal-service/repal-service.log"
+                     filePattern="/data/log/repal-service/$${date:yyyy-MM}/log-%d{yyyy-MM-dd}-%i.log">
             <Filters>
                 <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
 <!--                <ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>-->

+ 11 - 0
src/main/resources/mapper/RepalBillMapper.xml

@@ -2,4 +2,15 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.winhc.repal.repository.RepalBillMapper">
 
+
+    <select id="getRepalBillPage" resultType="com.winhc.repal.entity.RepalBill" parameterType="com.winhc.repal.model.dto.GetRepalBillPageDTO">
+        SELECT bill.* FROM REPAL_RESPONSIBLE_PERSON AS rPerson
+        LEFT JOIN REPAL_BILL AS bill ON rPerson.REPAL_BILL_ID = bill.ID
+        where rPerson.USER_ID = #{userId}
+        AND rPerson.REPAL_GROUP_ID = #{repalGroupId}
+        AND rPerson.REPAL_BOOK_ID = #{repalBookId}
+        AND rPerson.DELETED = 0
+    </select>
+
+
 </mapper>

+ 13 - 0
src/main/resources/mapper/RepalResponsiblePersonMapper.xml

@@ -2,4 +2,17 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.winhc.repal.repository.RepalResponsiblePersonMapper">
 
+    <select id="getResponsiblePersonNameList" parameterType="java.lang.Long" resultType="com.winhc.repal.model.vo.ResponsiblePersonNameVO">
+        SELECT rPerson.REPAL_BILL_ID AS repalBillId, userExt.USER_NAME AS userName FROM REPAL_RESPONSIBLE_PERSON AS rPerson
+        LEFT JOIN USER_EXT AS userExt ON rPerson.USER_ID = userExt.USER_ID
+        WHERE rPerson.REPAL_BILL_ID IN
+        <foreach item="item" index="index" collection="billIdList" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        AND rPerson.DELETED = 0
+        ORDER BY rPerson.ID DESC
+    </select>
+
+
+
 </mapper>

+ 1 - 1
src/test/java/CodeGenerator.java

@@ -50,7 +50,7 @@ public class CodeGenerator {
     public static final String MAPPER_XMP_PATH = RESOURCES_PATH + "/mapper";
 
     public static void main(String[] args) {
-        genCode("USER_EXT");
+        genCode("REPAL_RESPONSIBLE_PERSON");
     }
     // 生成文件控制
     private static final boolean GEN_CONTROLLER = false;