ソースを参照

更新报销单

jihs 4 年 前
コミット
7beebbb300
20 ファイル変更658 行追加12 行削除
  1. 47 0
      src/main/java/org/jeecg/common/dto/expense/ExpenseSlipAddReqDTO.java
  2. 28 0
      src/main/java/org/jeecg/common/dto/expense/ExpenseSlipProjectAddReqDTO.java
  3. 14 0
      src/main/java/org/jeecg/common/dto/payment/ProjectArchiveReqDTO.java
  4. 25 0
      src/main/java/org/jeecg/common/dto/payment/ProjectArchiveRespDTO.java
  5. 0 9
      src/main/java/org/jeecg/modules/archives/controller/ProjectManageArchivesController.java
  6. 1 0
      src/main/java/org/jeecg/modules/archives/entity/ProjectManageArchives.java
  7. 167 0
      src/main/java/org/jeecg/modules/expense/controller/ReExpenseSlipController.java
  8. 81 0
      src/main/java/org/jeecg/modules/expense/entity/ReExpenseSlip.java
  9. 64 0
      src/main/java/org/jeecg/modules/expense/entity/ReExpenseSlipProject.java
  10. 17 0
      src/main/java/org/jeecg/modules/expense/mapper/ReExpenseSlipMapper.java
  11. 17 0
      src/main/java/org/jeecg/modules/expense/mapper/ReExpenseSlipProjectMapper.java
  12. 5 0
      src/main/java/org/jeecg/modules/expense/mapper/xml/ReExpenseSlipMapper.xml
  13. 5 0
      src/main/java/org/jeecg/modules/expense/mapper/xml/ReExpenseSlipProjectMapper.xml
  14. 14 0
      src/main/java/org/jeecg/modules/expense/service/ReExpenseSlipProjectService.java
  15. 22 0
      src/main/java/org/jeecg/modules/expense/service/ReExpenseSlipService.java
  16. 18 0
      src/main/java/org/jeecg/modules/expense/service/impl/ReExpenseSlipProjectServiceImpl.java
  17. 77 0
      src/main/java/org/jeecg/modules/expense/service/impl/ReExpenseSlipServiceImpl.java
  18. 14 0
      src/main/java/org/jeecg/modules/payment/controller/ManagerPaymentAndReceiptSlipController.java
  19. 6 2
      src/main/java/org/jeecg/modules/payment/service/ManagerPaymentAndReceiptSlipService.java
  20. 36 1
      src/main/java/org/jeecg/modules/payment/service/impl/ManagerPaymentAndReceiptSlipServiceImpl.java

+ 47 - 0
src/main/java/org/jeecg/common/dto/expense/ExpenseSlipAddReqDTO.java

@@ -0,0 +1,47 @@
+package org.jeecg.common.dto.expense;
+
+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.util.Date;
+import java.util.List;
+
+/**
+   * @Author jihaosen
+   * @date 2021/3/8
+   */
+@ApiModel("费用报销单新增参数请求")
+@Data
+public class ExpenseSlipAddReqDTO {
+    @ApiModelProperty("id")
+    private String id;
+    @ApiModelProperty("人员id")
+    private String personId;
+    @ApiModelProperty("人员")
+    private String person;
+    @ApiModelProperty("日期")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date date;
+    @ApiModelProperty("制单人id")
+    private String producerId;
+    @ApiModelProperty("制单人")
+    private String producer;
+    @ApiModelProperty("审核人id")
+    private String reviewerId;
+    @ApiModelProperty("审核人")
+    private String reviewer;
+    @ApiModelProperty("项目id")
+    private String proId;
+    @ApiModelProperty("项目名")
+    private String proName;
+    @ApiModelProperty("组织")
+    private String pkOrg;
+
+    private List<ExpenseSlipProjectAddReqDTO> detailList;
+
+    public ExpenseSlipAddReqDTO() {
+    }
+}

+ 28 - 0
src/main/java/org/jeecg/common/dto/expense/ExpenseSlipProjectAddReqDTO.java

@@ -0,0 +1,28 @@
+package org.jeecg.common.dto.expense;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel("费用报销单--项目金额新增参数请求")
+@Data
+public class ExpenseSlipProjectAddReqDTO {
+    @ApiModelProperty("id")
+    private String id;
+    @ApiModelProperty("费用报销单id")
+    private String expenseId;
+    @ApiModelProperty("费用项目id")
+    private String costId;
+    @ApiModelProperty("费用项目名称")
+    private String costName;
+
+    public ExpenseSlipProjectAddReqDTO() {
+    }
+
+    public ExpenseSlipProjectAddReqDTO(String costId, String costName) {
+        this.costId = costId;
+        this.costName = costName;
+    }
+}

+ 14 - 0
src/main/java/org/jeecg/common/dto/payment/ProjectArchiveReqDTO.java

@@ -0,0 +1,14 @@
+package org.jeecg.common.dto.payment;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel("收付款单--项目名称与编码请求参数")
+@Data
+public class ProjectArchiveReqDTO {
+    private String pkOrg;
+
+    public ProjectArchiveReqDTO() {
+    }
+}

+ 25 - 0
src/main/java/org/jeecg/common/dto/payment/ProjectArchiveRespDTO.java

@@ -0,0 +1,25 @@
+package org.jeecg.common.dto.payment;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel("收付款单--项目名称与编码响应参数")
+@Data
+public class ProjectArchiveRespDTO {
+    @ApiModelProperty("项目档案id")
+    private String proId;
+    @ApiModelProperty("项目档案编码")
+    private String proCode;
+    @ApiModelProperty("项目档案名称")
+    private String proName;
+
+    public ProjectArchiveRespDTO() {
+    }
+
+    public ProjectArchiveRespDTO(String proId, String proCode, String proName) {
+        this.proId = proId;
+        this.proCode = proCode;
+        this.proName = proName;
+    }
+}

+ 0 - 9
src/main/java/org/jeecg/modules/archives/controller/ProjectManageArchivesController.java

@@ -2,7 +2,6 @@ package org.jeecg.modules.archives.controller;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -19,11 +18,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
-import org.jeecg.modules.archives.service.ProjectManageArchivesAndBusinessService;
 import org.jeecg.modules.archives.service.ProjectManageArchivesService;
-import org.jeecg.modules.archives.service.ProjectManageBusinessOtherService;
-import org.jeecg.modules.expense.entity.ReExpenseSlip;
-import org.jeecg.modules.expense.service.IReExpenseSlipService;
 import org.jeecg.modules.payment.service.ManagerPaymentAndReceiptSlipService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
@@ -46,8 +41,6 @@ public class ProjectManageArchivesController {
 	@Autowired
 	private ProjectManageArchivesService projectManageArchivesService;
 	@Autowired
-	private IReExpenseSlipService reExpenseSlipService;
-	@Autowired
 	private ManagerPaymentAndReceiptSlipService managerPaymentAndReceiptSlipService;
 
 
@@ -291,6 +284,4 @@ public class ProjectManageArchivesController {
 		}
 		return result;
 	}
-
-	//TODO 过滤项目档案接口
 }

+ 1 - 0
src/main/java/org/jeecg/modules/archives/entity/ProjectManageArchives.java

@@ -103,6 +103,7 @@ public class ProjectManageArchives implements Serializable {
         this.cusCode = reqDTO.getCusCode();
         this.cusName = reqDTO.getCusName();
         this.totalPrice = reqDTO.getTotalPrice();
+        this.received = reqDTO.getReceived();
         this.saleManagerId = reqDTO.getSaleManagerId();
         this.saleManager = reqDTO.getSaleManager();
         this.saleManId = reqDTO.getSaleManId();

+ 167 - 0
src/main/java/org/jeecg/modules/expense/controller/ReExpenseSlipController.java

@@ -0,0 +1,167 @@
+package org.jeecg.modules.expense.controller;
+
+import javax.servlet.http.HttpServletRequest;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.dto.expense.ExpenseSlipAddReqDTO;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.expense.entity.ReExpenseSlip;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.modules.expense.service.ReExpenseSlipService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+/**
+   * @Author jihaosen
+   * @date 2021/3/3
+   */
+
+ @Api("费用报销单")
+@RestController
+@RequestMapping("/expense/reExpenseSlip")
+@Slf4j
+public class ReExpenseSlipController {
+	@Autowired
+	private ReExpenseSlipService reExpenseSlipService;
+
+	 @ApiOperation(value = "分页查询", notes = "分页查询")
+	 @ApiImplicitParams({
+			 @ApiImplicitParam(name="pkOrg", value="组织",required=false, dataType="String"),
+	 })
+	@GetMapping(value = "/list")
+	public Result<IPage<ReExpenseSlip>> queryPageList(ReExpenseSlip reExpenseSlip,
+	  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+	  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+	  HttpServletRequest req) {
+		Result<IPage<ReExpenseSlip>> result = new Result<IPage<ReExpenseSlip>>();
+		QueryWrapper<ReExpenseSlip> queryWrapper = QueryGenerator.initQueryWrapper(reExpenseSlip, req.getParameterMap());
+		Page<ReExpenseSlip> page = new Page<ReExpenseSlip>(pageNo, pageSize);
+		IPage<ReExpenseSlip> pageList = reExpenseSlipService.page(page, queryWrapper);
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
+	}
+
+	 @ApiOperation(value = "新增", notes = "新增")
+	 @ApiImplicitParams({
+			 @ApiImplicitParam(name="pkOrg", value="组织",required=false, dataType="String"),
+			 @ApiImplicitParam(name="personId", value="人员id",required=false, dataType="String"),
+			 @ApiImplicitParam(name="person", value="人员",required=false, dataType="String"),
+			 @ApiImplicitParam(name="date", value="日期",required=false, dataType="String"),
+			 @ApiImplicitParam(name="producerId", value="制单人id",required=false, dataType="String"),
+			 @ApiImplicitParam(name="producer", value="制单人",required=false, dataType="String"),
+			 @ApiImplicitParam(name="reviewerId", value="审核人id",required=false, dataType="String"),
+			 @ApiImplicitParam(name="reviewer", value="审核人",required=false, dataType="String"),
+			 @ApiImplicitParam(name="proId", value="项目id",required=false, dataType="String"),
+			 @ApiImplicitParam(name="proName", value="项目名",required=false, dataType="String"),
+			 @ApiImplicitParam(name="costId", value="费用项目id",required=false, dataType="String"),
+			 @ApiImplicitParam(name="costName", value="费用项目名称",required=false, dataType="String"),
+	 })
+	@PostMapping(value = "/add")
+	public Result<ReExpenseSlip> add(@RequestBody ExpenseSlipAddReqDTO reqDTO) {
+		Result<ReExpenseSlip> result = new Result<ReExpenseSlip>();
+		try {
+			reExpenseSlipService.add(reqDTO);
+			result.success("添加成功!");
+		} catch (Exception e) {
+			e.printStackTrace();
+			log.info(e.getMessage());
+			result.error500("操作失败");
+		}
+		return result;
+	}
+
+	 @ApiOperation(value = "编辑", notes = "编辑")
+	 @ApiImplicitParams({
+			 @ApiImplicitParam(name="id", value="id",required=false, dataType="String"),
+			 @ApiImplicitParam(name="pkOrg", value="组织",required=false, dataType="String"),
+			 @ApiImplicitParam(name="personId", value="人员id",required=false, dataType="String"),
+			 @ApiImplicitParam(name="person", value="人员",required=false, dataType="String"),
+			 @ApiImplicitParam(name="date", value="日期",required=false, dataType="String"),
+			 @ApiImplicitParam(name="producerId", value="制单人id",required=false, dataType="String"),
+			 @ApiImplicitParam(name="producer", value="制单人",required=false, dataType="String"),
+			 @ApiImplicitParam(name="reviewerId", value="审核人id",required=false, dataType="String"),
+			 @ApiImplicitParam(name="reviewer", value="审核人",required=false, dataType="String"),
+			 @ApiImplicitParam(name="proId", value="项目id",required=false, dataType="String"),
+			 @ApiImplicitParam(name="proName", value="项目名",required=false, dataType="String"),
+			 @ApiImplicitParam(name="costId", value="费用项目id",required=false, dataType="String"),
+			 @ApiImplicitParam(name="costName", value="费用项目名称",required=false, dataType="String"),
+	 })
+	@PutMapping(value = "/edit")
+	public Result<ReExpenseSlip> edit(@RequestBody ExpenseSlipAddReqDTO reqDTO) {
+		Result<ReExpenseSlip> result = new Result<ReExpenseSlip>();
+		ReExpenseSlip reExpenseSlipEntity = reExpenseSlipService.getById(reqDTO.getId());
+		if(reExpenseSlipEntity==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = reExpenseSlipService.edit(reqDTO);
+			//TODO 返回false说明什么?
+			if(ok) {
+				result.success("修改成功!");
+			}
+		}
+		
+		return result;
+	}
+	
+	/**
+	  *   通过id删除
+	 * @param id
+	 * @return
+	 */
+	//TODO 待做
+	@DeleteMapping(value = "/delete")
+	public Result<ReExpenseSlip> delete(@RequestParam(name="id",required=true) String id) {
+		Result<ReExpenseSlip> result = new Result<ReExpenseSlip>();
+		ReExpenseSlip reExpenseSlip = reExpenseSlipService.getById(id);
+		if(reExpenseSlip==null) {
+			result.error500("未找到对应实体");
+		}else {
+			boolean ok = reExpenseSlipService.removeById(id);
+			if(ok) {
+				result.success("删除成功!");
+			}
+		}
+		
+		return result;
+	}
+	
+	/**
+	  * 通过id查询
+	 * @param id
+	 * @return
+	 */
+	@GetMapping(value = "/queryById")
+	public Result<ReExpenseSlip> queryById(@RequestParam(name="id",required=true) String id) {
+		Result<ReExpenseSlip> result = new Result<ReExpenseSlip>();
+		ReExpenseSlip reExpenseSlip = reExpenseSlipService.getById(id);
+		if(reExpenseSlip==null) {
+			result.error500("未找到对应实体");
+		}else {
+			result.setResult(reExpenseSlip);
+			result.setSuccess(true);
+		}
+		return result;
+	}
+}

+ 81 - 0
src/main/java/org/jeecg/modules/expense/entity/ReExpenseSlip.java

@@ -0,0 +1,81 @@
+package org.jeecg.modules.expense.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.common.dto.expense.ExpenseSlipAddReqDTO;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * @Author jihaosen
+ * @date 2021/3/3
+ */
+@ApiModel("费用报销单")
+@Data
+@TableName("re_expense_slip")
+public class ReExpenseSlip implements Serializable {
+    private static final long serialVersionUID = 5775022128365184542L;
+    @ApiModelProperty("id")
+    @TableId(type = IdType.UUID)
+    private String id;
+    @ApiModelProperty("人员id")
+    private String personId;
+    @ApiModelProperty("人员")
+    private String person;
+    @ApiModelProperty("日期")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date date;
+    @ApiModelProperty("制单人id")
+    private String producerId;
+    @ApiModelProperty("制单人")
+    private String producer;
+    @ApiModelProperty("审核人id")
+    private String reviewerId;
+    @ApiModelProperty("审核人")
+    private String reviewer;
+    @ApiModelProperty("项目id")
+    private String proId;
+    @ApiModelProperty("项目名")
+    private String proName;
+    @ApiModelProperty("删除状态(0,正常,1已删除)")
+    private String delFlag;
+    @ApiModelProperty("创建时间")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    @ApiModelProperty("创建人")
+    private String createBy;
+    @ApiModelProperty("修改时间")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+    @ApiModelProperty("修改人")
+    private String updateBy;
+    @ApiModelProperty("组织")
+    private String pkOrg;
+
+    public ReExpenseSlip() {
+    }
+
+    public ReExpenseSlip(ExpenseSlipAddReqDTO reqDTO) {
+        this.id = reqDTO.getId();
+        this.personId = reqDTO.getPersonId();
+        this.person = reqDTO.getPerson();
+        this.date = reqDTO.getDate();
+        this.producerId = reqDTO.getProducerId();
+        this.producer = reqDTO.getProducer();
+        this.reviewerId = reqDTO.getReviewerId();
+        this.reviewer = reqDTO.getReviewer();
+        this.delFlag = "0";
+        this.proId = reqDTO.getProId();
+        this.proName = reqDTO.getProName();
+        this.pkOrg = reqDTO.getPkOrg();
+    }
+}

+ 64 - 0
src/main/java/org/jeecg/modules/expense/entity/ReExpenseSlipProject.java

@@ -0,0 +1,64 @@
+package org.jeecg.modules.expense.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.common.dto.expense.ExpenseSlipProjectAddReqDTO;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * @Description: 费用报销单--项目金额
+ * @author: jeecg-boot
+ * @date2021-03-04
+ * @version: V1.0
+ */
+@Data
+@TableName("re_expense_slip_project")
+public class ReExpenseSlipProject implements Serializable {
+    private static final long serialVersionUID = 1L;
+    
+    @ApiModelProperty("id")
+	@TableId(type = IdType.UUID)
+	private String id;
+	@ApiModelProperty("费用报销单id")
+    private String expenseId;
+	@ApiModelProperty("费用项目id")
+    private String costId;
+	@ApiModelProperty("费用项目名称")
+	private String costName;
+	@ApiModelProperty("创建时间")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+	private Date createTime;
+	@ApiModelProperty("创建人")
+	private String createBy;
+	@ApiModelProperty("修改时间")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+	private Date updateTime;
+	@ApiModelProperty("修改人")
+	private String updateBy;
+	@ApiModelProperty("组织")
+	private String pkOrg;
+	@ApiModelProperty("删除状态(0,正常,1已删除)")
+	private String delFlag;
+
+	public ReExpenseSlipProject() {
+	}
+
+	public ReExpenseSlipProject(ExpenseSlipProjectAddReqDTO detail) {
+		this.expenseId = detail.getExpenseId();
+		this.costId = detail.getCostId();
+		this.costName = detail.getCostName();
+		this.delFlag = "0";
+	}
+
+	public ReExpenseSlipProject(String delFlag) {
+		this.delFlag = delFlag;
+	}
+}

+ 17 - 0
src/main/java/org/jeecg/modules/expense/mapper/ReExpenseSlipMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.expense.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.expense.entity.ReExpenseSlip;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 费用报销单
+ * @author: jeecg-boot
+ * @date2021-03-03
+ * @version: V1.0
+ */
+public interface ReExpenseSlipMapper extends BaseMapper<ReExpenseSlip> {
+
+}

+ 17 - 0
src/main/java/org/jeecg/modules/expense/mapper/ReExpenseSlipProjectMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.expense.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.expense.entity.ReExpenseSlipProject;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 费用报销单--项目金额
+ * @author: jeecg-boot
+ * @date2021-03-04
+ * @version: V1.0
+ */
+public interface ReExpenseSlipProjectMapper extends BaseMapper<ReExpenseSlipProject> {
+
+}

+ 5 - 0
src/main/java/org/jeecg/modules/expense/mapper/xml/ReExpenseSlipMapper.xml

@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.expense.mapper.ReExpenseSlipMapper">
+
+</mapper>

+ 5 - 0
src/main/java/org/jeecg/modules/expense/mapper/xml/ReExpenseSlipProjectMapper.xml

@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.expense.mapper.ReExpenseSlipProjectMapper">
+
+</mapper>

+ 14 - 0
src/main/java/org/jeecg/modules/expense/service/ReExpenseSlipProjectService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.expense.service;
+
+import org.jeecg.modules.expense.entity.ReExpenseSlipProject;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 费用报销单--项目金额
+ * @author: jeecg-boot
+ * @date2021-03-04
+ * @version: V1.0
+ */
+public interface ReExpenseSlipProjectService extends IService<ReExpenseSlipProject> {
+
+}

+ 22 - 0
src/main/java/org/jeecg/modules/expense/service/ReExpenseSlipService.java

@@ -0,0 +1,22 @@
+package org.jeecg.modules.expense.service;
+
+import org.jeecg.common.dto.expense.ExpenseSlipAddReqDTO;
+import org.jeecg.modules.expense.entity.ReExpenseSlip;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 费用报销单
+ * @author: jeecg-boot
+ * @date2021-03-03
+ * @version: V1.0
+ */
+public interface ReExpenseSlipService extends IService<ReExpenseSlip> {
+    /**
+     * @desc 新增
+     */
+    void add(ExpenseSlipAddReqDTO reqDTO);
+    /**
+     * @desc 编辑
+     */
+    boolean edit(ExpenseSlipAddReqDTO reqDTO);
+}

+ 18 - 0
src/main/java/org/jeecg/modules/expense/service/impl/ReExpenseSlipProjectServiceImpl.java

@@ -0,0 +1,18 @@
+package org.jeecg.modules.expense.service.impl;
+
+import org.jeecg.modules.expense.entity.ReExpenseSlipProject;
+import org.jeecg.modules.expense.mapper.ReExpenseSlipProjectMapper;
+import org.jeecg.modules.expense.service.ReExpenseSlipProjectService;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 费用报销单--项目金额
+ * @author: jeecg-boot
+ * @date2021-03-04
+ * @version: V1.0
+ */
+@Service
+public class ReExpenseSlipProjectServiceImpl extends ServiceImpl<ReExpenseSlipProjectMapper, ReExpenseSlipProject> implements ReExpenseSlipProjectService {
+
+}

+ 77 - 0
src/main/java/org/jeecg/modules/expense/service/impl/ReExpenseSlipServiceImpl.java

@@ -0,0 +1,77 @@
+package org.jeecg.modules.expense.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.google.common.collect.Lists;
+import org.jeecg.common.dto.expense.ExpenseSlipAddReqDTO;
+import org.jeecg.common.dto.expense.ExpenseSlipProjectAddReqDTO;
+import org.jeecg.modules.expense.entity.ReExpenseSlip;
+import org.jeecg.modules.expense.entity.ReExpenseSlipProject;
+import org.jeecg.modules.expense.mapper.ReExpenseSlipMapper;
+import org.jeecg.modules.expense.service.ReExpenseSlipProjectService;
+import org.jeecg.modules.expense.service.ReExpenseSlipService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.util.List;
+
+/**
+ * @Description: 费用报销单
+ * @author: jeecg-boot
+ * @date2021-03-03
+ * @version: V1.0
+ */
+@Service
+public class ReExpenseSlipServiceImpl extends ServiceImpl<ReExpenseSlipMapper, ReExpenseSlip> implements ReExpenseSlipService {
+    @Autowired
+    private ReExpenseSlipProjectService reExpenseSlipProjectService;
+
+    /**
+     * @desc 新增
+     */
+    @Override
+    public void add(ExpenseSlipAddReqDTO reqDTO) {
+        //保存主表
+        ReExpenseSlip reExpenseSlip = new ReExpenseSlip(reqDTO);
+         save(reExpenseSlip);
+         //保存子表
+        saveChildren(reqDTO, reExpenseSlip.getId());
+    }
+
+    /**
+     * @desc 编辑
+     */
+    @Override
+    public boolean edit(ExpenseSlipAddReqDTO reqDTO) {
+        //修改主表
+        updateById(new ReExpenseSlip(reqDTO));
+        //删除子表
+        deleteChildren(reqDTO.getId());
+        //保存子表
+        saveChildren(reqDTO, reqDTO.getId());
+        return true;
+    }
+
+    /**
+     * @desc 删除子表
+     */
+    private void deleteChildren(String id) {
+        QueryWrapper<ReExpenseSlipProject> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("expense_id", id);
+        queryWrapper.eq("del_flag","0");
+        reExpenseSlipProjectService.update(new ReExpenseSlipProject("1"), queryWrapper);
+    }
+
+    /**
+     * @desc 保存子表
+     */
+    private void saveChildren(ExpenseSlipAddReqDTO reqDTO, String id) {
+        List<ExpenseSlipProjectAddReqDTO> detailList = reqDTO.getDetailList();
+        List<ReExpenseSlipProject> list = Lists.newArrayList();
+        for(ExpenseSlipProjectAddReqDTO detail : detailList){
+            ReExpenseSlipProject project = new ReExpenseSlipProject(detail);
+            project.setExpenseId(id);
+            list.add(project);
+        }
+        reExpenseSlipProjectService.saveBatch(list);
+    }
+}

+ 14 - 0
src/main/java/org/jeecg/modules/payment/controller/ManagerPaymentAndReceiptSlipController.java

@@ -8,6 +8,8 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.dto.payment.ProjectArchiveReqDTO;
+import org.jeecg.common.dto.payment.ProjectArchiveRespDTO;
 import org.jeecg.common.dto.payment.SlieReqDTO;
 import org.jeecg.common.dto.payment.SlipAddReqDTO;
 import org.jeecg.common.dto.payment.SlipRespDTO;
@@ -31,6 +33,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
    * @Author jihaosen
    * @date 2021/3/3
@@ -178,4 +182,14 @@ public class ManagerPaymentAndReceiptSlipController {
 		}
 		return result;
 	}
+
+	@ApiOperation(value = "获取项目档案的名称与编码", notes = "过滤已经使用过得项目编码与名称")
+	@GetMapping(value = "/getProNameAndCode")
+	public Result<List<ProjectArchiveRespDTO>> get(ProjectArchiveReqDTO reqDTO) {
+		Result<List<ProjectArchiveRespDTO>> result = new Result<List<ProjectArchiveRespDTO>>();
+		List<ProjectArchiveRespDTO>  projectArchiveRespDTOS = managerPaymentAndReceiptSlipService.getProNameAndCode(reqDTO);
+			result.setResult(projectArchiveRespDTOS);
+			result.setSuccess(true);
+		return result;
+	}
 }

+ 6 - 2
src/main/java/org/jeecg/modules/payment/service/ManagerPaymentAndReceiptSlipService.java

@@ -2,11 +2,12 @@ package org.jeecg.modules.payment.service;
 
 import org.jeecg.common.dto.archives.ExpensePriceReqDTO;
 import org.jeecg.common.dto.archives.ExpensePriceRespDTO;
+import org.jeecg.common.dto.payment.ProjectArchiveReqDTO;
+import org.jeecg.common.dto.payment.ProjectArchiveRespDTO;
 import org.jeecg.common.dto.payment.SlipAddReqDTO;
 import org.jeecg.common.dto.payment.SlipRespDTO;
 import org.jeecg.modules.payment.entity.ManagerPaymentAndReceiptSlip;
 import com.baomidou.mybatisplus.extension.service.IService;
-
 import java.util.List;
 
 /**
@@ -32,9 +33,12 @@ public interface ManagerPaymentAndReceiptSlipService extends IService<ManagerPay
      * @desc 通过id删除
      */
     Boolean dropById(ManagerPaymentAndReceiptSlip managerPaymentAndReceiptSlip);
-
     /**
      * @desc 统计收付款单金额
      */
     ExpensePriceRespDTO getExpensePrice(ExpensePriceReqDTO reqDTO);
+    /**
+     * @desc 获取项目档案的名称与编码
+     */
+    List<ProjectArchiveRespDTO>  getProNameAndCode(ProjectArchiveReqDTO reqDTO);
 }

+ 36 - 1
src/main/java/org/jeecg/modules/payment/service/impl/ManagerPaymentAndReceiptSlipServiceImpl.java

@@ -4,10 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.google.common.collect.Lists;
 import org.jeecg.common.dto.archives.ExpensePriceReqDTO;
 import org.jeecg.common.dto.archives.ExpensePriceRespDTO;
+import org.jeecg.common.dto.payment.ProjectArchiveReqDTO;
+import org.jeecg.common.dto.payment.ProjectArchiveRespDTO;
 import org.jeecg.common.dto.payment.SlipAddReqDTO;
 import org.jeecg.common.dto.payment.SlipContentAddReqDTO;
 import org.jeecg.common.dto.payment.SlipContentRespDTO;
 import org.jeecg.common.dto.payment.SlipRespDTO;
+import org.jeecg.modules.archives.entity.ProjectManageArchives;
+import org.jeecg.modules.archives.service.ProjectManageArchivesService;
 import org.jeecg.modules.payment.entity.ManagePaymentAndReceiptContent;
 import org.jeecg.modules.payment.entity.ManagerPaymentAndReceiptSlip;
 import org.jeecg.modules.payment.mapper.ManagerPaymentAndReceiptSlipMapper;
@@ -19,9 +23,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
-
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 收付款管理--收款单
@@ -39,6 +43,8 @@ public class ManagerPaymentAndReceiptSlipServiceImpl extends ServiceImpl<Manager
     private ManagePaymentAndReceiptContentService managePaymentAndReceiptContentService;
     @Autowired
     private ManagerPaymentAndReceiptSlipMapper managerPaymentAndReceiptSlipMapper;
+    @Autowired
+    private ProjectManageArchivesService projectManageArchivesService;
 
     /**
      * @desc 新增
@@ -94,6 +100,9 @@ public class ManagerPaymentAndReceiptSlipServiceImpl extends ServiceImpl<Manager
         return true;
     }
 
+    /**
+     * @desc 统计汇款单金额
+     */
     @Override
     public ExpensePriceRespDTO getExpensePrice(ExpensePriceReqDTO reqDTO) {
        List<ManagePaymentAndReceiptContent> contents = managerPaymentAndReceiptSlipMapper.getExpensePrice(reqDTO);
@@ -104,6 +113,32 @@ public class ManagerPaymentAndReceiptSlipServiceImpl extends ServiceImpl<Manager
         return new ExpensePriceRespDTO(price);
     }
 
+    /**
+     * @desc 获取项目档案的名称与编码
+     */
+    @Override
+    public List<ProjectArchiveRespDTO> getProNameAndCode(ProjectArchiveReqDTO reqDTO) {
+        //获取收付款单列表数据
+        QueryWrapper< ManagerPaymentAndReceiptSlip> slipQueryWrapper = new QueryWrapper<>();
+        slipQueryWrapper.eq("del_flag", "0");
+        slipQueryWrapper.eq("pk_org", reqDTO.getPkOrg());
+        List<ManagerPaymentAndReceiptSlip> slips = list(slipQueryWrapper);
+        List<String> proIdList = slips.stream().map(ManagerPaymentAndReceiptSlip :: getProId).collect(Collectors.toList());
+        //获取项目档案列表数据
+        QueryWrapper<ProjectManageArchives> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("del_flag", "0");
+        queryWrapper.eq("pk_Org", reqDTO.getPkOrg());
+        List<ProjectManageArchives> projectManageArchives = projectManageArchivesService.list(queryWrapper);
+        //过滤已使用的项目档案
+        List<ProjectArchiveRespDTO> respDTOS = Lists.newArrayList();
+        for(ProjectManageArchives archives : projectManageArchives){
+            if(!proIdList.contains(archives.getId())){
+                respDTOS.add(new ProjectArchiveRespDTO(archives.getId(), archives.getProCode(), archives.getProName()));
+            }
+        }
+        return respDTOS;
+    }
+
 
 
     /**