Ver código fonte

报销功能调整

lizhenhao 2 anos atrás
pai
commit
370791ac89
24 arquivos alterados com 1276 adições e 89 exclusões
  1. 7 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/controller/ReimbursementInfoController.java
  2. 96 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfoContract.java
  3. 95 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfoOther.java
  4. 95 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfoProcured.java
  5. 7 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/domain/ReimbursementInfo.java
  6. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/ReimbursementDetailInfoContractMapper.java
  7. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/ReimbursementDetailInfoOtherMapper.java
  8. 17 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/ReimbursementDetailInfoProcuredMapper.java
  9. 10 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/ReimbursementInfoMapper.java
  10. 34 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/xml/ReimbursementDetailInfoContractMapper.xml
  11. 39 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/xml/ReimbursementDetailInfoOtherMapper.xml
  12. 39 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/xml/ReimbursementDetailInfoProcuredMapper.xml
  13. 190 10
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/xml/ReimbursementInfoMapper.xml
  14. 209 60
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/ReimbursementInfoService.java
  15. 5 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/QueryListDto.java
  16. 73 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/ReimbursementDetailInfoContractDTO.java
  17. 81 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/ReimbursementDetailInfoDTO.java
  18. 93 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/ReimbursementDetailInfoOtherDTO.java
  19. 93 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/ReimbursementDetailInfoProcuredDTO.java
  20. 19 10
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/RetureListDto.java
  21. 19 2
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/SaveInfoDto.java
  22. 3 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/workContract/controller/WorkContractController.java
  23. 3 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/workContract/domain/WorkContractInfo.java
  24. 15 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/workContract/service/WorkContractService.java

+ 7 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/controller/ReimbursementInfoController.java

@@ -10,6 +10,7 @@ import com.jeeplus.core.excel.utils.EasyPoiUtil;
 import com.jeeplus.sys.constant.enums.LogTypeEnum;
 import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo;
 import com.jeeplus.test.program.configuration.projectList.service.dto.ExportFileDto;
+import com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementInfo;
 import com.jeeplus.test.reimbursement.reimbursementInfo.service.ReimbursementInfoService;
 import com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.QueryListDto;
 import com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.RetureListDto;
@@ -54,8 +55,11 @@ public class ReimbursementInfoController {
     @ApiOperation(value = "新增、修改")
     @PostMapping("/save")
     public ResponseEntity<String> save(@RequestBody SaveInfoDto dto) throws Exception{
-        String s = service.save(dto);
-        return ResponseUtil.newInstance().add("businessTable", "reimbursement_info").add("businessId", s).ok ("操作成功");
+        ReimbursementInfo s = service.save(dto);
+        return ResponseUtil.newInstance().add("businessTable", "reimbursement_info")
+                .add("businessId", s.getId())
+                .add("no", s.getNo())
+                .ok ("操作成功");
     }
 
     /**
@@ -77,7 +81,7 @@ public class ReimbursementInfoController {
      */
     @ApiOperation(value = "查询")
     @GetMapping("/findById")
-    public ResponseEntity<SaveInfoDto> findById(@RequestParam String id) throws Exception{
+    public ResponseEntity<SaveInfoDto> findById(@RequestParam("id") String id) throws Exception{
         SaveInfoDto dto = service.findById(id);
         return ResponseEntity.ok(dto);
     }

+ 96 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfoContract.java

@@ -0,0 +1,96 @@
+package com.jeeplus.test.reimbursement.reimbursementInfo.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 评估-报销详情信息表
+ * @TableName reimbursement_detail_info_contract
+ */
+@TableName(value ="reimbursement_detail_info_contract")
+@Data
+public class ReimbursementDetailInfoContract extends BaseEntity implements Serializable {
+
+    /**
+     * 基础表id
+     */
+    private String infoId;
+
+    /**
+     * 报销人
+     */
+    private String userId;
+
+    /**
+     * 报销人名称
+     */
+    @TableField(exist = false)
+    private String userName;
+
+    /**
+     * 报销部门
+     */
+    private String deptId;
+
+    /**
+     * 报销部门名称
+     */
+    @TableField(exist = false)
+    private String deptName;
+
+    /**
+     * 报销类型
+     */
+    private String typeId;
+
+    /**
+     * 报销类型名称
+     */
+    @TableField(exist = false)
+    private String typeName;
+
+    /**
+     * 报销合同
+     */
+    private String contractId;
+
+    /**
+     * 报销合同名称
+     */
+    @TableField(exist = false)
+    private String contractName;
+
+    /**
+     * 报告号
+     */
+    private String reportNumber;
+
+    /**
+     * 费用(元)
+     */
+    private String number;
+
+    /**
+     * 收据张数
+     */
+    private Integer receiptNumber;
+
+    /**
+     * 出差天数
+     */
+    private Integer days;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 95 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfoOther.java

@@ -0,0 +1,95 @@
+package com.jeeplus.test.reimbursement.reimbursementInfo.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 评估-报销详情信息表
+ * @TableName reimbursement_detail_info_other
+ */
+@TableName(value ="reimbursement_detail_info_other")
+@Data
+public class ReimbursementDetailInfoOther extends BaseEntity implements Serializable {
+
+    /**
+     * 基础表id
+     */
+    private String infoId;
+
+    /**
+     * 报销人
+     */
+    private String userId;
+
+    /**
+     * 报销人名称
+     */
+    @TableField(exist = false)
+    private String userName;
+
+    /**
+     * 报销部门
+     */
+    private String deptId;
+
+    /**
+     * 报销部门名称
+     */
+    @TableField(exist = false)
+    private String deptName;
+
+    /**
+     * 报销类型
+     */
+    private String typeId;
+
+    /**
+     * 报销类型名称
+     */
+    @TableField(exist = false)
+    private String typeName;
+
+    /**
+     * 报销项目
+     */
+    private String projectId;
+
+    /**
+     * 报销项目名称
+     */
+    private String projectName;
+
+    /**
+     * 报告号
+     */
+    private String reportNumber;
+
+    /**
+     * 费用(元)
+     */
+    private String number;
+
+    /**
+     * 收据张数
+     */
+    private Integer receiptNumber;
+
+    /**
+     * 出差天数
+     */
+    private Integer days;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 95 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfoProcured.java

@@ -0,0 +1,95 @@
+package com.jeeplus.test.reimbursement.reimbursementInfo.domain;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 评估-报销详情信息表
+ * @TableName reimbursement_detail_info_procured
+ */
+@TableName(value ="reimbursement_detail_info_procured")
+@Data
+public class ReimbursementDetailInfoProcured extends BaseEntity implements Serializable {
+
+    /**
+     * 基础表id
+     */
+    private String infoId;
+
+    /**
+     * 报销人
+     */
+    private String userId;
+
+    /**
+     * 报销人名称
+     */
+    @TableField(exist = false)
+    private String userName;
+
+    /**
+     * 报销部门
+     */
+    private String deptId;
+
+    /**
+     * 报销部门名称
+     */
+    @TableField(exist = false)
+    private String deptName;
+
+    /**
+     * 报销类型
+     */
+    private String typeId;
+
+    /**
+     * 报销类型名称
+     */
+    @TableField(exist = false)
+    private String typeName;
+
+    /**
+     * 报销项目
+     */
+    private String projectId;
+
+    /**
+     * 报销项目名称
+     */
+    private String projectName;
+
+    /**
+     * 报告号
+     */
+    private String reportNumber;
+
+    /**
+     * 费用(元)
+     */
+    private String number;
+
+    /**
+     * 收据张数
+     */
+    private Integer receiptNumber;
+
+    /**
+     * 出差天数
+     */
+    private Integer days;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 7 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/domain/ReimbursementInfo.java

@@ -58,4 +58,11 @@ public class ReimbursementInfo extends BaseEntity {
      *
      */
     private String processDefinitionId;
+
+    /**
+     * 报销类型
+     */
+    private String sourceType;
+
+    private String purchaseId;
 }

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/ReimbursementDetailInfoContractMapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.reimbursement.reimbursementInfo.mapper;
+
+import com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementDetailInfoContract;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementDetailInfoContract
+ */
+@Mapper
+public interface ReimbursementDetailInfoContractMapper extends BaseMapper<ReimbursementDetailInfoContract> {
+
+}
+
+
+
+

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/ReimbursementDetailInfoOtherMapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.reimbursement.reimbursementInfo.mapper;
+
+import com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementDetailInfoOther;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementDetailInfoOther
+ */
+@Mapper
+public interface ReimbursementDetailInfoOtherMapper extends BaseMapper<ReimbursementDetailInfoOther> {
+
+}
+
+
+
+

+ 17 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/ReimbursementDetailInfoProcuredMapper.java

@@ -0,0 +1,17 @@
+package com.jeeplus.test.reimbursement.reimbursementInfo.mapper;
+
+import com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementDetailInfoProcured;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Entity com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementDetailInfoProcured
+ */
+@Mapper
+public interface ReimbursementDetailInfoProcuredMapper extends BaseMapper<ReimbursementDetailInfoProcured> {
+
+}
+
+
+
+

+ 10 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/ReimbursementInfoMapper.java

@@ -5,7 +5,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementInfo;
+import com.jeeplus.test.cw.reimbursementApproval.approvalInfo.domain.*;
+import com.jeeplus.test.reimbursement.reimbursementInfo.domain.*;
 import com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.RetureListDto;
 import com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.TreeUserDto;
 import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
@@ -30,4 +31,12 @@ public interface ReimbursementInfoMapper extends BaseMapper<ReimbursementInfo> {
     IPage<RetureListDto> relationReimbursementList (Page<RetureListDto> page, @Param("id") String id);
 
     List<TreeUserDto> findOfficeListByUserName(String name);
+
+    List<ReimbursementDetailInfoContract> getContractDetailList(@Param("id") String id);
+
+    List<ReimbursementDetailInfoOther> getOtherDetailList(@Param("id") String id);
+
+    List<ReimbursementDetailInfoProcured> getProcuredDetailList(@Param("id") String id);
+
+    List<ReimbursementDetailInfo> getDetailList(@Param("id") String id);
 }

+ 34 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/xml/ReimbursementDetailInfoContractMapper.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.reimbursement.reimbursementInfo.mapper.ReimbursementDetailInfoContractMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.ReimbursementDetailInfoContractDTO">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="infoId" column="info_id" jdbcType="VARCHAR"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="deptId" column="dept_id" jdbcType="VARCHAR"/>
+            <result property="typeId" column="type_id" jdbcType="VARCHAR"/>
+            <result property="contractId" column="contract_id" jdbcType="VARCHAR"/>
+            <result property="reportNumber" column="report_number" jdbcType="VARCHAR"/>
+            <result property="number" column="number" jdbcType="VARCHAR"/>
+            <result property="receiptNumber" column="receipt_number" jdbcType="INTEGER"/>
+            <result property="days" column="days" jdbcType="INTEGER"/>
+            <result property="content" column="content" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,create_by,create_date,
+        update_by,update_date,del_flag,
+        info_id,user_id,dept_id,
+        type_id,contract_id,report_number,
+        number,receipt_number,days,
+        content
+    </sql>
+</mapper>

+ 39 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/xml/ReimbursementDetailInfoOtherMapper.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.reimbursement.reimbursementInfo.mapper.ReimbursementDetailInfoOtherMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.ReimbursementDetailInfoOtherDTO">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="infoId" column="info_id" jdbcType="VARCHAR"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="userName" column="user_name" jdbcType="VARCHAR"/>
+            <result property="deptId" column="dept_id" jdbcType="VARCHAR"/>
+            <result property="deptName" column="dept_name" jdbcType="VARCHAR"/>
+            <result property="typeId" column="type_id" jdbcType="VARCHAR"/>
+            <result property="typeName" column="type_name" jdbcType="VARCHAR"/>
+            <result property="projectId" column="project_id" jdbcType="VARCHAR"/>
+            <result property="projectName" column="project_name" jdbcType="VARCHAR"/>
+            <result property="reportNumber" column="report_number" jdbcType="VARCHAR"/>
+            <result property="number" column="number" jdbcType="VARCHAR"/>
+            <result property="receiptNumber" column="receipt_number" jdbcType="INTEGER"/>
+            <result property="days" column="days" jdbcType="INTEGER"/>
+            <result property="content" column="content" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,create_by,create_date,
+        update_by,update_date,del_flag,
+        info_id,user_id,user_name,
+        dept_id,dept_name,type_id,
+        type_name,project_id,project_name,
+        report_number,number,receipt_number,
+        days,content
+    </sql>
+</mapper>

+ 39 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/xml/ReimbursementDetailInfoProcuredMapper.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.test.reimbursement.reimbursementInfo.mapper.ReimbursementDetailInfoProcuredMapper">
+
+    <resultMap id="BaseResultMap" type="com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.ReimbursementDetailInfoProcuredDTO">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="createBy.id" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
+            <result property="updateBy.id" column="update_by" jdbcType="VARCHAR"/>
+            <result property="updateDate" column="update_date" jdbcType="TIMESTAMP"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+            <result property="infoId" column="info_id" jdbcType="VARCHAR"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="userName" column="user_name" jdbcType="VARCHAR"/>
+            <result property="deptId" column="dept_id" jdbcType="VARCHAR"/>
+            <result property="deptName" column="dept_name" jdbcType="VARCHAR"/>
+            <result property="typeId" column="type_id" jdbcType="VARCHAR"/>
+            <result property="typeName" column="type_name" jdbcType="VARCHAR"/>
+            <result property="projectId" column="project_id" jdbcType="VARCHAR"/>
+            <result property="projectName" column="project_name" jdbcType="VARCHAR"/>
+            <result property="reportNumber" column="report_number" jdbcType="VARCHAR"/>
+            <result property="number" column="number" jdbcType="VARCHAR"/>
+            <result property="receiptNumber" column="receipt_number" jdbcType="INTEGER"/>
+            <result property="days" column="days" jdbcType="INTEGER"/>
+            <result property="content" column="content" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,create_by,create_date,
+        update_by,update_date,del_flag,
+        info_id,user_id,user_name,
+        dept_id,dept_name,type_id,
+        type_name,project_id,project_name,
+        report_number,number,receipt_number,
+        days,content
+    </sql>
+</mapper>

+ 190 - 10
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/mapper/xml/ReimbursementInfoMapper.xml

@@ -4,28 +4,91 @@
 
 	<select id="findList" resultType="com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.RetureListDto">
 		SELECT
-			a.id,
+			DISTINCT a.id,
 			a.`no`,
-			b.type_id,
-			b.type_name,
-			b.project_id,
-			b.project_name,
-			b.report_number,
+			(CASE
+			WHEN a.source_type = 1 THEN b.type_id
+			WHEN a.source_type = 2 THEN b2.type_id
+			WHEN a.source_type = 4 THEN b4.type_id
+									ELSE b5.type_id END) AS type_id,
+			(CASE
+			WHEN a.source_type = 1 THEN t.name
+			WHEN a.source_type = 2 THEN t2.name
+			WHEN a.source_type = 4 THEN t4.name
+									ELSE t5.name END) AS type_name,
+			(CASE
+			WHEN a.source_type = 1 THEN b.project_id
+			WHEN a.source_type = 2 THEN b2.contract_id
+			WHEN a.source_type = 4 THEN b4.project_id
+									ELSE b5.project_id END) AS project_id,
+			(CASE
+			WHEN a.source_type = 1 THEN p.name
+			WHEN a.source_type = 2 THEN contr2.name
+			WHEN a.source_type = 4 THEN b4.project_name
+									ELSE b5.project_name END) AS project_name,
+			(CASE
+			WHEN a.source_type = 1 THEN b.report_number
+			WHEN a.source_type = 2 THEN b2.report_number
+			WHEN a.source_type = 4 THEN b4.report_number
+									ELSE b5.report_number END) AS report_number,
+			(CASE
+			WHEN a.source_type = 1 THEN so.name
+			WHEN a.source_type = 2 THEN so2.name
+			WHEN a.source_type = 4 THEN so4.name
+									ELSE so5.name END) AS dept_name,
+			(CASE
+			WHEN a.source_type = 1 THEN us.name
+			WHEN a.source_type = 2 THEN us2.name
+			WHEN a.source_type = 4 THEN us4.name
+									ELSE us5.name END) AS name,
+			(CASE
+			WHEN a.source_type = 1 THEN b.`number`
+			WHEN a.source_type = 2 THEN b2.`number`
+			WHEN a.source_type = 4 THEN b4.`number`
+									ELSE b5.`number` END) AS `number`,
 			a.user_name,
-			b.user_name AS `name`,
-			b.dept_name,
 			a.reim_date,
-			b.`number`,
 			a.type,
 			a.proc_ins_id,
 			a.process_definition_id,
 			d.ID_ AS task_id,
-			a.create_by as create_id
+			a.create_by as create_id,
+			a.source_type,
+			a.purchase_id,
+			pru.purchase_no
 		FROM
 			reimbursement_info a
+
 			LEFT JOIN reimbursement_detail_info b ON a.id = b.info_id AND b.del_flag = 0
+			left join cw_reimbursement_type_info t on b.type_id = t.id and t.del_flag = 0
+			left join program_project_list_info p on p.id = b.project_id and p.del_flag = 0
+			left join sys_office so on so.id = b.dept_id and so.del_flag = 0
+			left join sys_user us on us.id = b.user_id and us.del_flag = 0
+
+			LEFT JOIN reimbursement_detail_info_contract b2 ON a.id = b2.info_id AND b2.del_flag = 0
+			left join cw_reimbursement_type_info t2 on b2.type_id = t2.id and t2.del_flag = 0
+			left join work_contract_info contr2 on contr2.id = b2.contract_id and contr2.del_flag = 0
+			left join sys_office so2 on so2.id = b2.dept_id and so2.del_flag = 0
+			left join sys_user us2 on us2.id = b2.user_id and us2.del_flag = 0
+
+			LEFT JOIN reimbursement_detail_info_other b4 ON a.id = b4.info_id AND b4.del_flag = 0
+			left join cw_reimbursement_type_info t4 on b4.type_id = t4.id and t4.del_flag = 0
+			left join program_project_list_info p4 on p4.id = b4.project_id and p4.del_flag = 0
+			left join sys_office so4 on so4.id = b4.dept_id and so4.del_flag = 0
+			left join sys_user us4 on us4.id = b4.user_id and us4.del_flag = 0
+
+			LEFT JOIN reimbursement_detail_info_procured b5 ON a.id = b5.info_id AND b5.del_flag = 0
+			left join cw_reimbursement_type_info t5 on b5.type_id = t5.id and t5.del_flag = 0
+			left join program_project_list_info p5 on p5.id = b5.project_id and p5.del_flag = 0
+			left join sys_office so5 on so5.id = b5.dept_id and so5.del_flag = 0
+			left join sys_user us5 on us5.id = b5.user_id and us5.del_flag = 0
+
+
+
 			LEFT JOIN sys_user c ON a.create_by =  c.id
+			left join sys_user_manage_office sumo on sumo.office_id = c.office_id
 			LEFT JOIN act_ru_task d ON a.proc_ins_id = d.PROC_INST_ID_
+			left join material_management_pruchase_request_basics pru on pru.id = a.purchase_id and pru.del_flag = '0'
 			${ew.customSqlSegment}
 		ORDER BY a.update_date DESC
 	</select>
@@ -132,4 +195,121 @@
 		on a.id = b.office_id
 		WHERE a.del_flag = 0 and b.name = #{name}
 	</select>
+
+	<select id="getContractDetailList" resultType="com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementDetailInfoContract">
+		select
+		a.id,
+		a.create_by,
+		a.create_date,
+		a.del_flag,
+		a.info_id,
+		a.user_id,
+		a.dept_id,
+		a.type_id,
+		a.contract_id,
+		a.report_number,
+		a.number,
+		a.receipt_number,
+		a.days,
+		a.content,
+		su.name as user_name,
+		so.name as dept_name,
+		pg_type.name as type_name,
+		pg_contract.name as contract_name
+		from reimbursement_detail_info_contract a
+		left join sys_user su on a.user_id = su.id and su.del_flag = '0'
+		left join sys_office so on a.dept_id = so.id and so.del_flag = '0'
+		left join cw_reimbursement_type_info pg_type on pg_type.id = a.type_id and pg_type.del_flag = '0'
+		left join work_contract_info pg_contract on pg_contract.id = a.contract_id and pg_contract.del_flag = '0'
+		where a.del_flag = '0' and a.info_id = #{id}
+		order by a.number asc
+	</select>
+
+	<select id="getDetailList" resultType="com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementDetailInfo">
+		select
+		a.id,
+		a.create_by,
+		a.create_date,
+		a.del_flag,
+		a.info_id,
+		a.user_id,
+		a.dept_id,
+		a.type_id,
+		a.project_id,
+		a.report_number,
+		a.number,
+		a.receipt_number,
+		a.days,
+		a.content,
+		su.name as user_name,
+		so.name as dept_name,
+		pg_type.name as type_name,
+		pg_project.name as project_name
+		from reimbursement_detail_info a
+		left join sys_user su on a.user_id = su.id and su.del_flag = '0'
+		left join sys_office so on a.dept_id = so.id and so.del_flag = '0'
+		left join cw_reimbursement_type_info pg_type on pg_type.id = a.type_id and pg_type.del_flag = '0'
+		left join program_project_list_info pg_project on pg_project.id = a.project_id and pg_project.del_flag = '0'
+		where a.del_flag = '0' and a.info_id = #{id}
+		order by a.number asc
+	</select>
+
+	<select id="getOtherDetailList" resultType="com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementDetailInfoOther">
+		select
+		a.id,
+		a.create_by,
+		a.create_date,
+		a.del_flag,
+		a.info_id,
+		a.user_id,
+		a.dept_id,
+		a.type_id,
+		a.project_id,
+		a.report_number,
+		a.number,
+		a.receipt_number,
+		a.days,
+		a.content,
+		su.name as user_name,
+		so.name as dept_name,
+		pg_type.name as type_name,
+		a.project_name as project_name
+		from reimbursement_detail_info_other a
+		left join sys_user su on a.user_id = su.id and su.del_flag = '0'
+		left join sys_office so on a.dept_id = so.id and so.del_flag = '0'
+		left join cw_reimbursement_type_info pg_type on pg_type.id = a.type_id and pg_type.del_flag = '0'
+		left join program_project_list_info pg_project on pg_project.id = a.project_id and pg_project.del_flag = '0'
+		where a.del_flag = '0' and a.info_id = #{id}
+		order by a.number asc
+	</select>
+
+	<select id="getProcuredDetailList" resultType="com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementDetailInfoProcured">
+		select
+		a.id,
+		a.create_by,
+		a.create_date,
+		a.del_flag,
+		a.info_id,
+		a.user_id,
+		a.dept_id,
+		a.type_id,
+		a.project_id,
+		a.report_number,
+		a.number,
+		a.receipt_number,
+		a.days,
+		a.content,
+		su.name as user_name,
+		so.name as dept_name,
+		pg_type.name as type_name,
+		a.project_name as project_name
+		from reimbursement_detail_info_procured a
+		left join sys_user su on a.user_id = su.id and su.del_flag = '0'
+		left join sys_office so on a.dept_id = so.id and so.del_flag = '0'
+		left join cw_reimbursement_type_info pg_type on pg_type.id = a.type_id and pg_type.del_flag = '0'
+		left join program_project_list_info pg_project on pg_project.id = a.project_id and pg_project.del_flag = '0'
+		where a.del_flag = '0' and a.info_id = #{id}
+		order by a.number asc
+	</select>
+
 </mapper>

+ 209 - 60
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/ReimbursementInfoService.java

@@ -1,5 +1,6 @@
 package com.jeeplus.test.reimbursement.reimbursementInfo.service;
 
+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.metadata.IPage;
@@ -10,18 +11,16 @@ import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.jeeplus.sys.domain.Office;
 import com.jeeplus.sys.mapper.OfficeMapper;
 import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.utils.DictUtils;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.test.cw.reimbursementApproval.approvalInfo.domain.*;
 import com.jeeplus.test.manytomany.domain.Student;
 import com.jeeplus.test.mould.service.SerialnumTplService;
 import com.jeeplus.test.oss.domain.WorkAttachment;
 import com.jeeplus.test.oss.mapper.OssServiceMapper;
-import com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementAmountInfo;
-import com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementDetailInfo;
-import com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementInfo;
-import com.jeeplus.test.reimbursement.reimbursementInfo.mapper.ReimbursementAmountInfoMapper;
-import com.jeeplus.test.reimbursement.reimbursementInfo.mapper.ReimbursementDetailInfoMapper;
-import com.jeeplus.test.reimbursement.reimbursementInfo.mapper.ReimbursementInfoMapper;
+import com.jeeplus.test.reimbursement.reimbursementInfo.domain.*;
+import com.jeeplus.test.reimbursement.reimbursementInfo.mapper.*;
 import com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.QueryListDto;
 import com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.RetureListDto;
 import com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.SaveInfoDto;
@@ -61,6 +60,15 @@ public class ReimbursementInfoService {
     @Autowired
     private OfficeMapper officeMapper;
 
+    @Autowired
+    private ReimbursementDetailInfoContractMapper reimbursementDetailInfoContractMapper;
+
+    @Autowired
+    private ReimbursementDetailInfoOtherMapper reimbursementDetailInfoOtherMapper;
+
+    @Autowired
+    private ReimbursementDetailInfoProcuredMapper reimbursementDetailInfoProcuredMapper;
+
     /**
      * 列表查询
      */
@@ -74,7 +82,10 @@ public class ReimbursementInfoService {
         queryWrapper.eq("a.del_flag", 0);
         // 报销项目
         if (StringUtils.isNotEmpty(dto.getProject())) {
-            queryWrapper.apply("(b.project_id = {0} OR b.project_name LIKE {1})", dto.getProject(), "%" + dto.getProject() + "%");
+            queryWrapper.apply("(b.project_id = {0} OR p.name LIKE {1})", dto.getProject(), "%" + dto.getProject() + "%");
+            queryWrapper.or().apply("(b4.project_id = {0} OR b4.project_name LIKE {1})", dto.getProject(), "%" + dto.getProject() + "%");
+            queryWrapper.or().apply("(b5.project_id = {0} OR b5.project_name LIKE {1})", dto.getProject(), "%" + dto.getProject() + "%");
+
         }
         // 报销时间
         if (dto.getDates() != null) {
@@ -86,7 +97,11 @@ public class ReimbursementInfoService {
         }
         // 报销人
         if (StringUtils.isNotEmpty(dto.getReimBy())) {
-            queryWrapper.apply("( b.user_id = {0} OR b.user_name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
+            queryWrapper.apply("( b.user_id = {0} OR us.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
+            queryWrapper.or().apply("( b2.user_id = {0} OR us2.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
+            queryWrapper.or().apply("( b4.user_id = {0} OR us4.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
+            queryWrapper.or().apply("( b5.user_id = {0} OR us5.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
+
         }
         // 报销状态
         if (StringUtils.isNotEmpty(dto.getType())) {
@@ -94,29 +109,54 @@ public class ReimbursementInfoService {
         }
         // 报销部门
         if (StringUtils.isNotEmpty(dto.getDepartment())) {
-            queryWrapper.apply("( b.dept_id = {0} OR b.dept_name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
+            queryWrapper.apply("( b.dept_id = {0} OR so.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
+            queryWrapper.or().apply("( b2.dept_id = {0} OR so2.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
+            queryWrapper.or().apply("( b4.dept_id = {0} OR so4.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
+            queryWrapper.or().apply("( b5.dept_id = {0} OR so5.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
+
         }
         // 报销类别
         if (StringUtils.isNotEmpty(dto.getRemiType())) {
-            queryWrapper.apply(" (b.type_id = {0} OR b.type_name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+            queryWrapper.apply(" (b.type_id = {0} OR t.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+            queryWrapper.or().apply(" (b2.type_id = {0} OR t2.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+            queryWrapper.or().apply(" (b4.type_id = {0} OR t4.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+            queryWrapper.or().apply(" (b5.type_id = {0} OR t5.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+
         }
         // 报销金额
         if (dto.getAmounts() != null) {
             if (StringUtils.isNotEmpty(dto.getAmounts()[0])) {
-                queryWrapper.ge("b.number", Double.parseDouble(dto.getAmounts()[0]));
+                queryWrapper.and(w->
+                    w.ge("b.number", Double.parseDouble(dto.getAmounts()[0]))
+                        .or().ge("b2.number", Double.parseDouble(dto.getAmounts()[0]))
+                        .or().ge("b4.number", Double.parseDouble(dto.getAmounts()[0]))
+                        .or().ge("b5.number", Double.parseDouble(dto.getAmounts()[0]))
+                );
             }
             if (StringUtils.isNotEmpty(dto.getAmounts()[1])) {
-                queryWrapper.le("b.number", Double.parseDouble(dto.getAmounts()[1]));
+                queryWrapper.and(w->
+                        w.le("b.number", Double.parseDouble(dto.getAmounts()[1]))
+                                .or().le("b2.number", Double.parseDouble(dto.getAmounts()[1]))
+                                .or().le("b4.number", Double.parseDouble(dto.getAmounts()[1]))
+                                .or().le("b5.number", Double.parseDouble(dto.getAmounts()[1]))
+                );
             }
         }
         // 报告号
         if (StringUtils.isNotEmpty(dto.getReportNumber())) {
             queryWrapper.like("b.report_number", dto.getReportNumber());
+            queryWrapper.or().like("b2.report_number", dto.getReportNumber());
+            queryWrapper.or().like("b4.report_number", dto.getReportNumber());
+            queryWrapper.or().like("b5.report_number", dto.getReportNumber());
+        }
+        // 报销类型
+        if (StringUtils.isNotBlank(dto.getSourceType())) {
+            queryWrapper.eq("a.source_type", dto.getSourceType());
         }
         return infoMapper.findList(page, queryWrapper);
     }
 
-    public String save(SaveInfoDto dto) throws Exception{
+    public ReimbursementInfo save(SaveInfoDto dto) throws Exception{
         // 获取当前登录人信息
         UserDTO userDTO = UserUtils.getCurrentUserDTO();
         if (StringUtils.isNotEmpty(dto.getId())) {
@@ -126,7 +166,7 @@ public class ReimbursementInfoService {
         }
     }
 
-    public String add(SaveInfoDto dto, UserDTO userDTO) throws Exception{
+    public ReimbursementInfo add(SaveInfoDto dto, UserDTO userDTO) throws Exception{
         // 生成id
         String id = UUID.randomUUID().toString().replace("-", "");
         // 生成编号
@@ -142,22 +182,38 @@ public class ReimbursementInfoService {
         info.setUpdateDate(new Date());
         info.setDelFlag(0);
         infoMapper.insert(info);
-        // 保存详情列表信息
+        // 保存项目详情列表信息
         if (CollectionUtils.isNotEmpty(dto.getDetailInfos())) {
             for (ReimbursementDetailInfo detailInfo : dto.getDetailInfos()) {
-                // 生成id
-                String detailId = UUID.randomUUID().toString().replace("-", "");
-                detailInfo.setId(detailId);
-                detailInfo.setCreateBy(userDTO.getId());
-                detailInfo.setCreateDate(new Date());
-                detailInfo.setUpdateBy(userDTO.getId());
-                detailInfo.setUpdateDate(new Date());
-                detailInfo.setDelFlag(0);
                 // 保存基础表信息主键值
                 detailInfo.setInfoId(id);
                 detailInfoMapper.insert(detailInfo);
             }
         }
+        // 保存合同详情列表信息
+        if (CollectionUtils.isNotEmpty(dto.getDetailInfoContracts())) {
+            for (ReimbursementDetailInfoContract detailInfo : dto.getDetailInfoContracts()) {
+                // 保存基础表信息主键值
+                detailInfo.setInfoId(id);
+                reimbursementDetailInfoContractMapper.insert(detailInfo);
+            }
+        }
+        // 保存其他报销详情列表信息
+        if (CollectionUtils.isNotEmpty(dto.getDetailInfoOthers())) {
+            for (ReimbursementDetailInfoOther detailInfo : dto.getDetailInfoOthers()) {
+                // 保存基础表信息主键值
+                detailInfo.setInfoId(id);
+                reimbursementDetailInfoOtherMapper.insert(detailInfo);
+            }
+        }
+        // 保存采购报销详情列表信息
+        if (CollectionUtils.isNotEmpty(dto.getDetailInfoProcured())) {
+            for (ReimbursementDetailInfoProcured detailInfo : dto.getDetailInfoProcured()) {
+                // 保存基础表信息主键值
+                detailInfo.setInfoId(id);
+                reimbursementDetailInfoProcuredMapper.insert(detailInfo);
+            }
+        }
         // 保存专用发票列表信息
         if (CollectionUtils.isNotEmpty(dto.getAmountInfos())) {
             for (ReimbursementAmountInfo amountInfo : dto.getAmountInfos()) {
@@ -178,10 +234,10 @@ public class ReimbursementInfoService {
         if (CollectionUtils.isNotEmpty(dto.getFiles())) {
             workContractService.saveFiles(dto.getFiles(), userDTO, id);
         }
-        return id;
+        return info;
     }
 
-    public String update(SaveInfoDto dto, UserDTO userDTO) {
+    public ReimbursementInfo update(SaveInfoDto dto, UserDTO userDTO) {
         // 修改基础信息
         ReimbursementInfo info = new ReimbursementInfo();
         BeanUtils.copyProperties(dto, info);
@@ -193,21 +249,55 @@ public class ReimbursementInfoService {
         LambdaQueryWrapper<ReimbursementDetailInfo> detailWrapper = new LambdaQueryWrapper<>();
         detailWrapper.eq(ReimbursementDetailInfo::getInfoId, dto.getId());
         detailInfoMapper.delete(detailWrapper);
+        // 删除合同列表
+        LambdaQueryWrapper<ReimbursementDetailInfoContract> detailWrapperContract = new LambdaQueryWrapper<>();
+        detailWrapperContract.eq(ReimbursementDetailInfoContract::getInfoId, dto.getId());
+        reimbursementDetailInfoContractMapper.delete(detailWrapperContract);
+        // 删除其他报销表
+        LambdaQueryWrapper<ReimbursementDetailInfoOther> detailWrapperOthers = new LambdaQueryWrapper<>();
+        detailWrapperOthers.eq(ReimbursementDetailInfoOther::getInfoId, dto.getId());
+        reimbursementDetailInfoOtherMapper.delete(detailWrapperOthers);
+        // 删除采购报销表
+        LambdaQueryWrapper<ReimbursementDetailInfoProcured> detailWrapperProcured = new LambdaQueryWrapper<>();
+        detailWrapperProcured.eq(ReimbursementDetailInfoProcured::getInfoId, dto.getId());
+        reimbursementDetailInfoProcuredMapper.delete(detailWrapperProcured);
+
+        // 保存项目详情列表信息
         if (CollectionUtils.isNotEmpty(dto.getDetailInfos())) {
             for (ReimbursementDetailInfo detailInfo : dto.getDetailInfos()) {
-                // 生成id
-                String detailId = UUID.randomUUID().toString().replace("-", "");
-                detailInfo.setId(detailId);
-                detailInfo.setCreateBy(userDTO.getId());
-                detailInfo.setCreateDate(new Date());
-                detailInfo.setUpdateBy(userDTO.getId());
-                detailInfo.setUpdateDate(new Date());
-                detailInfo.setDelFlag(0);
                 // 保存基础表信息主键值
                 detailInfo.setInfoId(dto.getId());
+                detailInfo.setId("");
                 detailInfoMapper.insert(detailInfo);
             }
         }
+        // 保存合同详情列表信息
+        if (CollectionUtils.isNotEmpty(dto.getDetailInfoContracts())) {
+            for (ReimbursementDetailInfoContract detailInfo : dto.getDetailInfoContracts()) {
+                // 保存基础表信息主键值
+                detailInfo.setInfoId(dto.getId());
+                detailInfo.setId("");
+                reimbursementDetailInfoContractMapper.insert(detailInfo);
+            }
+        }
+        // 保存其他报销详情列表信息
+        if (CollectionUtils.isNotEmpty(dto.getDetailInfoOthers())) {
+            for (ReimbursementDetailInfoOther detailInfo : dto.getDetailInfoOthers()) {
+                // 保存基础表信息主键值
+                detailInfo.setInfoId(dto.getId());
+                detailInfo.setId("");
+                reimbursementDetailInfoOtherMapper.insert(detailInfo);
+            }
+        }
+        // 保存采购报销详情列表信息
+        if (CollectionUtils.isNotEmpty(dto.getDetailInfoProcured())) {
+            for (ReimbursementDetailInfoProcured detailInfo : dto.getDetailInfoProcured()) {
+                // 保存基础表信息主键值
+                detailInfo.setInfoId(dto.getId());
+                detailInfo.setId("");
+                reimbursementDetailInfoProcuredMapper.insert(detailInfo);
+            }
+        }
         // 修改专用发票信息列表
         // 删除原有数据
         LambdaQueryWrapper<ReimbursementAmountInfo> amountWrapper = new LambdaQueryWrapper<>();
@@ -232,16 +322,28 @@ public class ReimbursementInfoService {
         if (CollectionUtils.isNotEmpty(dto.getFiles())) {
             workContractService.updateFiles(dto.getFiles(), userDTO, dto.getId());
         }
-        return dto.getId();
+        return info;
     }
 
     public String remove(String id) {
         // 删除基础信息表
         infoMapper.deleteById(id);
         // 删除详情列表
-        LambdaQueryWrapper<ReimbursementDetailInfo> detailInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        detailInfoLambdaQueryWrapper.eq(ReimbursementDetailInfo::getInfoId, id);
-        detailInfoMapper.delete(detailInfoLambdaQueryWrapper);
+        LambdaQueryWrapper<ReimbursementDetailInfo> detailWrapper = new LambdaQueryWrapper<>();
+        detailWrapper.eq(ReimbursementDetailInfo::getInfoId, id);
+        detailInfoMapper.delete(detailWrapper);
+        // 删除合同列表
+        LambdaQueryWrapper<ReimbursementDetailInfoContract> detailWrapperContract = new LambdaQueryWrapper<>();
+        detailWrapperContract.eq(ReimbursementDetailInfoContract::getInfoId, id);
+        reimbursementDetailInfoContractMapper.delete(detailWrapperContract);
+        // 删除其他报销列表
+        LambdaQueryWrapper<ReimbursementDetailInfoOther> detailWrapperOther = new LambdaQueryWrapper<>();
+        detailWrapperOther.eq(ReimbursementDetailInfoOther::getInfoId, id);
+        reimbursementDetailInfoOtherMapper.delete(detailWrapperOther);
+        // 删除采购报销列表
+        LambdaQueryWrapper<ReimbursementDetailInfoProcured> detailWrapperProcured = new LambdaQueryWrapper<>();
+        detailWrapperProcured.eq(ReimbursementDetailInfoProcured::getInfoId, id);
+        reimbursementDetailInfoProcuredMapper.delete(detailWrapperProcured);
         // 删除专用发票信息列表
         LambdaQueryWrapper<ReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
         amountInfoLambdaQueryWrapper.eq(ReimbursementAmountInfo::getInfoId, id);
@@ -257,25 +359,36 @@ public class ReimbursementInfoService {
         SaveInfoDto dto = new SaveInfoDto();
         // 查询基础信息表
         ReimbursementInfo info = infoMapper.selectById(id);
-        BeanUtils.copyProperties(info, dto);
-        // 查询详情列表
-        LambdaQueryWrapper<ReimbursementDetailInfo> detailInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        detailInfoLambdaQueryWrapper.eq(ReimbursementDetailInfo::getInfoId, id);
-        List<ReimbursementDetailInfo> detailInfos = detailInfoMapper.selectList(detailInfoLambdaQueryWrapper);
-        dto.setDetailInfos(detailInfos);
-        // 查询专用发票信息列表
-        LambdaQueryWrapper<ReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        amountInfoLambdaQueryWrapper.eq(ReimbursementAmountInfo::getInfoId, id);
-        List<ReimbursementAmountInfo> amountInfos = amountInfoMapper.selectList(amountInfoLambdaQueryWrapper);
-        dto.setAmountInfos(amountInfos);
-        // 查询附件信息
-        List<WorkAttachmentDto> files = infoMapper.findFiles(id);
-        if (CollectionUtils.isNotEmpty(files)) {
-            for (WorkAttachmentDto i : files) {
-                i.setCreateBy(UserUtils.get(i.getBy()));
+        if (ObjectUtil.isNotEmpty(info)){
+            BeanUtils.copyProperties(info, dto);
+            if(StringUtils.isNotBlank(info.getDepartment())) {
+                Office byId = officeMapper.selectById(info.getDepartment());
+                if (ObjectUtil.isNotEmpty(byId)) {
+                    dto.setDepartmentName(byId.getName());
+                }
             }
+            // 项目报销详情
+            dto.setDetailInfos(infoMapper.getDetailList(id));
+            // 合同报销详情
+            dto.setDetailInfoContracts(infoMapper.getContractDetailList(id));
+            // 其他报销
+            dto.setDetailInfoOthers(infoMapper.getOtherDetailList(id));
+            // 采购报销
+            dto.setDetailInfoProcured(infoMapper.getProcuredDetailList(id));
+            // 查询专用发票信息列表
+            LambdaQueryWrapper<ReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            amountInfoLambdaQueryWrapper.eq(ReimbursementAmountInfo::getInfoId, id);
+            List<ReimbursementAmountInfo> amountInfos = amountInfoMapper.selectList(amountInfoLambdaQueryWrapper);
+            dto.setAmountInfos(amountInfos);
+            // 查询附件信息
+            List<WorkAttachmentDto> files = infoMapper.findFiles(id);
+            if (CollectionUtils.isNotEmpty(files)) {
+                for (WorkAttachmentDto i : files) {
+                    i.setCreateBy(UserUtils.get(i.getBy()));
+                }
+            }
+            dto.setFiles(files);
         }
-        dto.setFiles(files);
         return dto;
     }
 
@@ -451,7 +564,10 @@ public class ReimbursementInfoService {
         queryWrapper.eq("a.del_flag", 0);
         // 报销项目
         if (StringUtils.isNotEmpty(dto.getProject())) {
-            queryWrapper.apply("(b.project_id = {0} OR b.project_name LIKE {1})", dto.getProject(), "%" + dto.getProject() + "%");
+            queryWrapper.apply("(b.project_id = {0} OR p.project_name LIKE {1})", dto.getProject(), "%" + dto.getProject() + "%");
+            queryWrapper.or().apply("(b4.project_id = {0} OR b4.project_name LIKE {1})", dto.getProject(), "%" + dto.getProject() + "%");
+            queryWrapper.or().apply("(b5.project_id = {0} OR b5.project_name LIKE {1})", dto.getProject(), "%" + dto.getProject() + "%");
+
         }
         // 报销时间
         if (dto.getDates() != null) {
@@ -463,7 +579,10 @@ public class ReimbursementInfoService {
         }
         // 报销人
         if (StringUtils.isNotEmpty(dto.getReimBy())) {
-            queryWrapper.apply("( b.user_id = {0} OR b.user_name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
+            queryWrapper.apply("( b.user_id = {0} OR us.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
+            queryWrapper.or().apply("( b2.user_id = {0} OR us2.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
+            queryWrapper.or().apply("( b4.user_id = {0} OR us4.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
+            queryWrapper.or().apply("( b5.user_id = {0} OR us5.name LIKE {1} )", dto.getReimBy(), "%" + dto.getReimBy() + "%");
         }
         // 报销状态
         if (StringUtils.isNotEmpty(dto.getType())) {
@@ -471,24 +590,47 @@ public class ReimbursementInfoService {
         }
         // 报销部门
         if (StringUtils.isNotEmpty(dto.getDepartment())) {
-            queryWrapper.apply("( b.dept_id = {0} OR b.dept_name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
+            queryWrapper.apply("( b.dept_id = {0} OR so.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
+            queryWrapper.or().apply("( b2.dept_id = {0} OR so2.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
+            queryWrapper.or().apply("( b4.dept_id = {0} OR so4.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
+            queryWrapper.or().apply("( b5.dept_id = {0} OR so5.name LIKE {1} )", dto.getDepartment(), "%" + dto.getDepartment() + "%");
         }
         // 报销类别
         if (StringUtils.isNotEmpty(dto.getRemiType())) {
-            queryWrapper.apply(" (b.type_id = {0} OR b.type_name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+            queryWrapper.apply(" (b.type_id = {0} OR t.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+            queryWrapper.or().apply(" (b2.type_id = {0} OR t2.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+            queryWrapper.or().apply(" (b4.type_id = {0} OR t4.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
+            queryWrapper.or().apply(" (b5.type_id = {0} OR t5.name LIKE {1}) ", dto.getRemiType(), "%" + dto.getRemiType() + "%");
         }
         // 报销金额
         if (dto.getAmounts() != null) {
             if (StringUtils.isNotEmpty(dto.getAmounts()[0])) {
-                queryWrapper.ge("b.number", dto.getAmounts()[0]);
+                queryWrapper.and(w ->
+                        w.ge("b.number", Double.parseDouble(dto.getAmounts()[0]))
+                                .or().ge("b2.number", Double.parseDouble(dto.getAmounts()[0]))
+                                .or().ge("b4.number", Double.parseDouble(dto.getAmounts()[0]))
+                                .or().ge("b5.number", Double.parseDouble(dto.getAmounts()[0]))
+                );
             }
             if (StringUtils.isNotEmpty(dto.getAmounts()[1])) {
-                queryWrapper.le("b.number", dto.getAmounts()[1]);
+                queryWrapper.and(w ->
+                        w.le("b.number", Double.parseDouble(dto.getAmounts()[1]))
+                                .or().le("b2.number", Double.parseDouble(dto.getAmounts()[1]))
+                                .or().le("b4.number", Double.parseDouble(dto.getAmounts()[1]))
+                                .or().le("b5.number", Double.parseDouble(dto.getAmounts()[1]))
+                );
             }
         }
         // 报告号
         if (StringUtils.isNotEmpty(dto.getReportNumber())) {
             queryWrapper.like("b.report_number", dto.getReportNumber());
+            queryWrapper.or().like("b2.report_number", dto.getReportNumber());
+            queryWrapper.or().like("b4.report_number", dto.getReportNumber());
+            queryWrapper.or().like("b5.report_number", dto.getReportNumber());
+        }
+        // 报销类型
+        if (StringUtils.isNotBlank(dto.getSourceType())) {
+            queryWrapper.eq("a.source_type", dto.getSourceType());
         }
         List<RetureListDto> exportList = infoMapper.findExportList(queryWrapper);
         if (CollectionUtils.isNotEmpty(exportList)) {
@@ -508,6 +650,13 @@ public class ReimbursementInfoService {
                 if ("5".equals(retureListDto.getType())) {
                     retureListDto.setType("已完成");
                 }
+                if (StringUtils.isNotBlank(retureListDto.getSourceType())) {
+                    if ("2".equals(retureListDto.getSourceType())) {
+                        retureListDto.setContractName(retureListDto.getProjectName());
+                        retureListDto.setProjectName("");
+                    }
+                    retureListDto.setSourceType(DictUtils.getDictLabel(retureListDto.getSourceType(),"pg_reimbursement_source_type",""));
+                }
             }
         }
         return exportList;

+ 5 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/QueryListDto.java

@@ -50,4 +50,9 @@ public class QueryListDto extends BaseEntity {
      * 报告号
      */
     private String reportNumber;
+
+    /**
+     * 报销类型
+     */
+    private String sourceType;
 }

+ 73 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/ReimbursementDetailInfoContractDTO.java

@@ -0,0 +1,73 @@
+package com.jeeplus.test.reimbursement.reimbursementInfo.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 评估-报销详情信息表
+ * @TableName reimbursement_detail_info_contract
+ */
+@TableName(value ="reimbursement_detail_info_contract")
+@Data
+public class ReimbursementDetailInfoContractDTO extends BaseDTO implements Serializable {
+
+    /**
+     * 基础表id
+     */
+    private String infoId;
+
+    /**
+     * 报销人
+     */
+    private String userId;
+
+    /**
+     * 报销部门
+     */
+    private String deptId;
+
+    /**
+     * 报销类型
+     */
+    private String typeId;
+
+    /**
+     * 报销合同
+     */
+    private String contractId;
+
+    /**
+     * 报告号
+     */
+    private String reportNumber;
+
+    /**
+     * 费用(元)
+     */
+    private String number;
+
+    /**
+     * 收据张数
+     */
+    private Integer receiptNumber;
+
+    /**
+     * 出差天数
+     */
+    private Integer days;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 81 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/ReimbursementDetailInfoDTO.java

@@ -0,0 +1,81 @@
+package com.jeeplus.test.reimbursement.reimbursementInfo.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+
+@Data
+@TableName(value = "reimbursement_detail_info")
+public class ReimbursementDetailInfoDTO extends BaseDTO {
+
+    /**
+     * 关联id
+     */
+    private String infoId;
+
+    /**
+     * 报销人
+     */
+    private String userId;
+
+    /**
+     * 报销人名称
+     */
+    private String userName;
+
+    /**
+     * 报销部门
+     */
+    private String deptId;
+
+    /**
+     * 报销部门名称
+     */
+    private String deptName;
+
+    /**
+     * 报销类型
+     */
+    private String typeId;
+
+    /**
+     * 报销类型名称
+     */
+    private String typeName;
+
+    /**
+     * 报销项目
+     */
+    private String projectId;
+
+    /**
+     * 报销项目名称
+     */
+    private String projectName;
+
+    /**
+     * 报告号
+     */
+    private String reportNumber;
+
+    /**
+     * 费用(元)
+     */
+    private String number;
+
+    /**
+     * 收据张数
+     */
+    private Integer receiptNumber;
+
+    /**
+     * 出差天数
+     */
+    private Integer days;
+
+    /**
+     * 内容
+     */
+    private String content;
+}

+ 93 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/ReimbursementDetailInfoOtherDTO.java

@@ -0,0 +1,93 @@
+package com.jeeplus.test.reimbursement.reimbursementInfo.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 评估-报销详情信息表
+ * @TableName reimbursement_detail_info_other
+ */
+@TableName(value ="reimbursement_detail_info_other")
+@Data
+public class ReimbursementDetailInfoOtherDTO extends BaseDTO implements Serializable {
+
+    /**
+     * 基础表id
+     */
+    private String infoId;
+
+    /**
+     * 报销人
+     */
+    private String userId;
+
+    /**
+     * 报销人名称
+     */
+    private String userName;
+
+    /**
+     * 报销部门
+     */
+    private String deptId;
+
+    /**
+     * 报销部门名称
+     */
+    private String deptName;
+
+    /**
+     * 报销类型
+     */
+    private String typeId;
+
+    /**
+     * 报销类型名称
+     */
+    private String typeName;
+
+    /**
+     * 报销项目
+     */
+    private String projectId;
+
+    /**
+     * 报销项目名称
+     */
+    private String projectName;
+
+    /**
+     * 报告号
+     */
+    private String reportNumber;
+
+    /**
+     * 费用(元)
+     */
+    private String number;
+
+    /**
+     * 收据张数
+     */
+    private Integer receiptNumber;
+
+    /**
+     * 出差天数
+     */
+    private Integer days;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 93 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/ReimbursementDetailInfoProcuredDTO.java

@@ -0,0 +1,93 @@
+package com.jeeplus.test.reimbursement.reimbursementInfo.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 评估-报销详情信息表
+ * @TableName reimbursement_detail_info_procured
+ */
+@TableName(value ="reimbursement_detail_info_procured")
+@Data
+public class ReimbursementDetailInfoProcuredDTO extends BaseDTO implements Serializable {
+
+    /**
+     * 基础表id
+     */
+    private String infoId;
+
+    /**
+     * 报销人
+     */
+    private String userId;
+
+    /**
+     * 报销人名称
+     */
+    private String userName;
+
+    /**
+     * 报销部门
+     */
+    private String deptId;
+
+    /**
+     * 报销部门名称
+     */
+    private String deptName;
+
+    /**
+     * 报销类型
+     */
+    private String typeId;
+
+    /**
+     * 报销类型名称
+     */
+    private String typeName;
+
+    /**
+     * 报销项目
+     */
+    private String projectId;
+
+    /**
+     * 报销项目名称
+     */
+    private String projectName;
+
+    /**
+     * 报告号
+     */
+    private String reportNumber;
+
+    /**
+     * 费用(元)
+     */
+    private String number;
+
+    /**
+     * 收据张数
+     */
+    private Integer receiptNumber;
+
+    /**
+     * 出差天数
+     */
+    private Integer days;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 19 - 10
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/RetureListDto.java

@@ -30,7 +30,7 @@ public class RetureListDto {
     /**
      * 报销类别
      */
-    @Excel(name = "报销类别", width = 30, orderNum = "2")
+    @Excel(name = "报销类别", width = 30, orderNum = "3")
     private String typeName;
 
     /**
@@ -41,50 +41,55 @@ public class RetureListDto {
     /**
      * 报销项目
      */
-    @Excel(name = "报销项目", width = 30, orderNum = "3")
+    @Excel(name = "报销项目/合同", width = 30, orderNum = "4")
     private String projectName;
 
     /**
+     * 报销合同
+     */
+    private String contractName;
+
+    /**
      * 报告号
      */
-    @Excel(name = "报告号", width = 30, orderNum = "4")
+    @Excel(name = "报告号", width = 30, orderNum = "6")
     private String reportNumber;
 
     /**
      * 经办人
      */
-    @Excel(name = "经办人", width = 30, orderNum = "5")
+    @Excel(name = "经办人", width = 30, orderNum = "7")
     private String userName;
 
     /**
      * 报销人
      */
-    @Excel(name = "报销人", width = 30, orderNum = "6")
+    @Excel(name = "报销人", width = 30, orderNum = "8")
     private String name;
 
     /**
      * 报销部门
      */
-    @Excel(name = "报销部门", width = 30, orderNum = "7")
+    @Excel(name = "报销部门", width = 30, orderNum = "9")
     private String deptName;
 
     /**
      * 报销日期
      */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "报销日期", width = 30, orderNum = "8")
+    @Excel(name = "报销日期", exportFormat="yyyy-MM-dd", width = 30, orderNum = "10")
     private Date reimDate;
 
     /**
      * 报销金额
      */
-    @Excel(name = "报销金额", width = 30, orderNum = "9",type = 10)
+    @Excel(name = "报销金额", width = 30, orderNum = "11",type = 10)
     private BigDecimal number;
 
     /**
      * 报销状态
      */
-    @Excel(name = "报销状态", width = 30, orderNum = "10",dict = "status")
+    @Excel(name = "报销状态", width = 30, orderNum = "12",dict = "status")
     private String type;
 
     /**
@@ -97,7 +102,7 @@ public class RetureListDto {
      */
     private String processDefinitionId;
 
-    @Excel(name = "报销类型", width = 30, orderNum = "2",dict = "cw_reimbursement_source_type")
+    @Excel(name = "报销类型", width = 30, orderNum = "2",dict = "pg_reimbursement_source_type")
     private String sourceType;
 
     private String taskId;
@@ -106,4 +111,8 @@ public class RetureListDto {
      * 创建人id
      */
     private String createId;
+
+    private String purchaseNo;
+
+    private String purchaseId;
 }

+ 19 - 2
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursement/reimbursementInfo/service/dto/SaveInfoDto.java

@@ -2,9 +2,9 @@ package com.jeeplus.test.reimbursement.reimbursementInfo.service.dto;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.test.cw.reimbursementApproval.approvalInfo.domain.*;
 import com.jeeplus.test.oss.domain.WorkAttachment;
-import com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementAmountInfo;
-import com.jeeplus.test.reimbursement.reimbursementInfo.domain.ReimbursementDetailInfo;
+import com.jeeplus.test.reimbursement.reimbursementInfo.domain.*;
 import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -66,9 +66,26 @@ public class SaveInfoDto extends BaseEntity {
     private String processInstanceId;
 
     private List<ReimbursementDetailInfo> detailInfos;
+    private List<ReimbursementDetailInfoContract> detailInfoContracts;
+    private List<ReimbursementDetailInfoOther> detailInfoOthers;
+    private List<ReimbursementDetailInfoProcured> detailInfoProcured;
 
     private List<ReimbursementAmountInfo> amountInfos;
 
     private List<WorkAttachmentDto> files;
+    /**
+     * 报销类型
+     */
+    private String sourceType;
+
+    /**
+     * 采购编号
+     */
+    private String purchaseNo;
+
+    private String purchaseId;
+
+    private String departmentName;
+
 
 }

+ 3 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/workContract/controller/WorkContractController.java

@@ -43,8 +43,10 @@ public class WorkContractController {
         String clientName = workClientInfo.getClientName();
         String[] contractDates = workClientInfo.getContractDates();
         String[] contractAmounts = workClientInfo.getContractAmounts();
+        String statusList = workClientInfo.getStatusList();
+        String status = workClientInfo.getStatus();
         QueryWrapper<WorkContractInfo> workContractInfoQueryWrapper = QueryWrapperGenerator.buildQueryCondition(workClientInfo, WorkContractInfo.class);
-        IPage<WorkContractInfo> list = workContractService.list(page, workContractInfoQueryWrapper, clientName, contractDates, contractAmounts);
+        IPage<WorkContractInfo> list = workContractService.list(page, workContractInfoQueryWrapper, clientName, contractDates, contractAmounts, statusList, status);
         return ResponseEntity.ok (list);
     }
 

+ 3 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/workContract/domain/WorkContractInfo.java

@@ -169,7 +169,6 @@ public class WorkContractInfo {
     /**
      * 状态
      */
-    @Query
     private String status;
 
     /**
@@ -203,4 +202,7 @@ public class WorkContractInfo {
 
     @TableField(exist = false)
     private String contractFileId;
+
+    @TableField(exist = false)
+    private String statusList;
 }

+ 15 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/workContract/service/WorkContractService.java

@@ -3,6 +3,7 @@ package com.jeeplus.test.workContract.service;
 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.google.common.collect.Lists;
 import com.jeeplus.sys.utils.TicketQueryUtils;
 import com.jeeplus.test.oss.service.OssService;
 import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo;
@@ -57,7 +58,7 @@ public class WorkContractService {
      * @param
      * @return
      */
-    public IPage<WorkContractInfo> list(Page<WorkContractInfo> page, QueryWrapper<WorkContractInfo> queryWrapper, String clientName, String[] contractDates, String[] contractAmounts) {
+    public IPage<WorkContractInfo> list(Page<WorkContractInfo> page, QueryWrapper<WorkContractInfo> queryWrapper, String clientName, String[] contractDates, String[] contractAmounts,String statusList,String status) {
         queryWrapper.eq("a.del_flag","0");
         if (contractDates != null) {
             queryWrapper.between("a.contract_date", contractDates[0], contractDates[1]);
@@ -70,6 +71,19 @@ public class WorkContractService {
                 queryWrapper.le("a.contract_amount", contractAmounts[1]);
             }
         }
+        if (StringUtils.isNotBlank(statusList)) {
+            if (statusList.contains(",")) {
+                List<String> statusS = Lists.newLinkedList();
+                statusS = Arrays.asList(statusList.split(","));
+                queryWrapper.in("a.status", statusS);
+            }else{
+                queryWrapper.like("a.status", statusList);
+            }
+        } else {
+            if (StringUtils.isNotBlank(status)) {
+                queryWrapper.like("a.status", status);
+            }
+        }
         IPage<WorkContractInfo> pageList = workContractInfoMapper.findPageList(page, queryWrapper);
         return pageList;
     }