Selaa lähdekoodia

项目档案根据id查询接口执行人列表返回参数,报销单接口更新

jihs 4 vuotta sitten
vanhempi
commit
1e1b1d4aac

+ 5 - 1
src/main/java/org/jeecg/common/dto/archives/ProBusinessOtherListRespDTO.java

@@ -51,13 +51,16 @@ public class ProBusinessOtherListRespDTO {
     private String realTime;
     @ApiModelProperty(" 是否叶子节点: 1:是 0:不是")
     private boolean isLeaf;
+    @Getter
+    @Setter
+    private List<String> executorIdList;
 
     private List<ProBusinessOtherListRespDTO> children;
 
     public ProBusinessOtherListRespDTO() {
     }
 
-    public ProBusinessOtherListRespDTO(ProjectManageBusinessOther other) {
+    public ProBusinessOtherListRespDTO(ProjectManageBusinessOther other, List<String> executorIdList) {
         this.id = other.getId();
         this.key = other.getKeyId();
         this.parentId = other.getParentId();
@@ -71,6 +74,7 @@ public class ProBusinessOtherListRespDTO {
         this.realTime = other.getRealTime();
         this.title = other.getMuilesName();
         this.isLeaf = false;
+        this.executorIdList = executorIdList;
     }
 
     public String getId() {

+ 3 - 7
src/main/java/org/jeecg/common/dto/expense/ExpenseSlipProjectAddReqDTO.java

@@ -1,10 +1,9 @@
 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;
+import java.math.BigDecimal;
 
 @ApiModel("费用报销单--项目金额新增参数请求")
 @Data
@@ -17,12 +16,9 @@ public class ExpenseSlipProjectAddReqDTO {
     private String costId;
     @ApiModelProperty("费用项目名称")
     private String costName;
+    @ApiModelProperty("金额")
+    private BigDecimal price;
 
     public ExpenseSlipProjectAddReqDTO() {
     }
-
-    public ExpenseSlipProjectAddReqDTO(String costId, String costName) {
-        this.costId = costId;
-        this.costName = costName;
-    }
 }

+ 37 - 0
src/main/java/org/jeecg/common/dto/expense/ExpenseSlipProjectListRespDTO.java

@@ -0,0 +1,37 @@
+package org.jeecg.common.dto.expense;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.jeecg.modules.expense.entity.ReExpenseSlipProject;
+import java.math.BigDecimal;
+
+/**
+   * @Author jihaosen
+   * @date 2021/3/8
+   */
+@ApiModel("费用报销单--项目金额新增参数响应")
+@Data
+public class ExpenseSlipProjectListRespDTO {
+    @ApiModelProperty("id")
+    private String id;
+    @ApiModelProperty("费用报销单id")
+    private String expenseId;
+    @ApiModelProperty("费用项目id")
+    private String costId;
+    @ApiModelProperty("费用项目名称")
+    private String costName;
+    @ApiModelProperty("金额")
+    private BigDecimal price;
+
+    public ExpenseSlipProjectListRespDTO() {
+    }
+
+    public ExpenseSlipProjectListRespDTO(ReExpenseSlipProject project) {
+        this.id = project.getId();
+        this.expenseId = project.getExpenseId();
+        this.costId = project.getCostId();
+        this.costName = project.getCostName();
+        this.price = project.getPrice();
+    }
+}

+ 21 - 0
src/main/java/org/jeecg/common/dto/expense/ExpenseSlipReqDTO.java

@@ -0,0 +1,21 @@
+package org.jeecg.common.dto.expense;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+ /**
+   * @Author jihaosen
+   * @date 2021/3/8
+   */
+@ApiModel("报销单id请求参数")
+@Data
+public class ExpenseSlipReqDTO {
+    private String id;
+
+    public ExpenseSlipReqDTO() {
+    }
+
+    public ExpenseSlipReqDTO(String id) {
+        this.id = id;
+    }
+}

+ 63 - 0
src/main/java/org/jeecg/common/dto/expense/ExpenseSlipRespDTO.java

@@ -0,0 +1,63 @@
+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.jeecg.modules.expense.entity.ReExpenseSlip;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.util.Date;
+import java.util.List;
+
+ /**
+   * @Author jihaosen
+   * @date 2021/3/8
+   */
+@ApiModel("报销单id响应参数")
+@Data
+public class ExpenseSlipRespDTO {
+        @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<ExpenseSlipProjectListRespDTO> detailList;
+
+        public ExpenseSlipRespDTO() {
+        }
+
+     public ExpenseSlipRespDTO(ReExpenseSlip slip) {
+         this.id = slip.getId();
+         this.personId = slip.getPersonId();
+         this.person = slip.getPerson();
+         this.date = slip.getDate();
+         this.producerId = slip.getProducerId();
+         this.producer = slip.getProducer();
+         this.reviewerId = slip.getReviewerId();
+         this.reviewer = slip.getReviewer();
+         this.proId = slip.getProId();
+         this.proName = slip.getProName();
+         this.pkOrg = slip.getPkOrg();
+     }
+ }

+ 12 - 3
src/main/java/org/jeecg/modules/archives/service/impl/ProjectManageArchivesServiceImpl.java

@@ -2,6 +2,7 @@ package org.jeecg.modules.archives.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.google.common.collect.Lists;
+import org.apache.commons.lang.ArrayUtils;
 import org.jeecg.common.dto.archives.BsInfo;
 import org.jeecg.common.dto.archives.DeInfo;
 import org.jeecg.common.dto.archives.DeInfoRespDTO;
@@ -27,6 +28,7 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -139,7 +141,7 @@ public class ProjectManageArchivesServiceImpl extends ServiceImpl<ProjectManageA
             return null;
         }
         for(ProjectManageBusinessOther other : baseArchivesMilestones){
-            ProBusinessOtherListRespDTO respDTO = new ProBusinessOtherListRespDTO(other);
+            ProBusinessOtherListRespDTO respDTO = new ProBusinessOtherListRespDTO(other, getExecutorList(other));
             respDTO.setChildren(getChildes(otherList, respDTO.getKey(), postMap));
             //判断是否为末节点
             List<ProjectManageBusinessOther> posts = postMap.get(respDTO.getKey());
@@ -152,14 +154,21 @@ public class ProjectManageArchivesServiceImpl extends ServiceImpl<ProjectManageA
         return resp;
     }
 
-    /**
+     /**
+      * @desc 获取执行人列表
+      */
+     private List<String> getExecutorList(ProjectManageBusinessOther other) {
+         return Arrays.asList(other.getExecutorId().split("、"));
+     }
+
+     /**
      * @desc 获取子节点数据
      */
     private List<ProBusinessOtherListRespDTO> getChildes(List<ProjectManageBusinessOther> list, String key, Map<String, List<ProjectManageBusinessOther>> postMap) {
         List<ProBusinessOtherListRespDTO> resp = Lists.newArrayList();
         for(ProjectManageBusinessOther other : list){
             if(other.getParentId().equals(key)){
-                ProBusinessOtherListRespDTO respDTO = new ProBusinessOtherListRespDTO(other);
+                ProBusinessOtherListRespDTO respDTO = new ProBusinessOtherListRespDTO(other, getExecutorList(other));
                 respDTO.setChildren(getChildes(list, respDTO.getKey(), postMap));
                 //判断是否为末节点
                 List<ProjectManageBusinessOther> posts = postMap.get(respDTO.getKey());

+ 31 - 18
src/main/java/org/jeecg/modules/expense/controller/ReExpenseSlipController.java

@@ -12,6 +12,8 @@ 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.dto.expense.ExpenseSlipReqDTO;
+import org.jeecg.common.dto.expense.ExpenseSlipRespDTO;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.modules.expense.entity.ReExpenseSlip;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -55,8 +57,10 @@ public class ReExpenseSlipController {
 	  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 	  HttpServletRequest req) {
 		Result<IPage<ReExpenseSlip>> result = new Result<IPage<ReExpenseSlip>>();
+		 reExpenseSlip.setDelFlag(null);
 		QueryWrapper<ReExpenseSlip> queryWrapper = QueryGenerator.initQueryWrapper(reExpenseSlip, req.getParameterMap());
 		Page<ReExpenseSlip> page = new Page<ReExpenseSlip>(pageNo, pageSize);
+		 queryWrapper.eq("del_flag", "0");
 		IPage<ReExpenseSlip> pageList = reExpenseSlipService.page(page, queryWrapper);
 		result.setSuccess(true);
 		result.setResult(pageList);
@@ -116,7 +120,6 @@ public class ReExpenseSlipController {
 			result.error500("未找到对应实体");
 		}else {
 			boolean ok = reExpenseSlipService.edit(reqDTO);
-			//TODO 返回false说明什么?
 			if(ok) {
 				result.success("修改成功!");
 			}
@@ -125,20 +128,18 @@ public class ReExpenseSlipController {
 		return result;
 	}
 	
-	/**
-	  *   通过id删除
-	 * @param id
-	 * @return
-	 */
-	//TODO 待做
+	@ApiOperation(value = "通过id删除主子表", notes = "通过id删除主子表")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name="id", value="id",required=false, dataType="String"),
+	})
 	@DeleteMapping(value = "/delete")
-	public Result<ReExpenseSlip> delete(@RequestParam(name="id",required=true) String id) {
+	public Result<ReExpenseSlip> delete(@RequestBody ExpenseSlipReqDTO  reqDTO) {
 		Result<ReExpenseSlip> result = new Result<ReExpenseSlip>();
-		ReExpenseSlip reExpenseSlip = reExpenseSlipService.getById(id);
+		ReExpenseSlip reExpenseSlip = reExpenseSlipService.getById(reqDTO.getId());
 		if(reExpenseSlip==null) {
 			result.error500("未找到对应实体");
 		}else {
-			boolean ok = reExpenseSlipService.removeById(id);
+			boolean ok = reExpenseSlipService.deleteById(reExpenseSlip);
 			if(ok) {
 				result.success("删除成功!");
 			}
@@ -146,16 +147,15 @@ public class ReExpenseSlipController {
 		
 		return result;
 	}
-	
-	/**
-	  * 通过id查询
-	 * @param id
-	 * @return
-	 */
+
+	@ApiOperation(value = "通过id查询", notes = "通过id查询")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name="id", value="id",required=false, dataType="String"),
+	})
 	@GetMapping(value = "/queryById")
-	public Result<ReExpenseSlip> queryById(@RequestParam(name="id",required=true) String id) {
+	public Result<ReExpenseSlip> queryById(ExpenseSlipReqDTO  reqDTO) {
 		Result<ReExpenseSlip> result = new Result<ReExpenseSlip>();
-		ReExpenseSlip reExpenseSlip = reExpenseSlipService.getById(id);
+		ReExpenseSlip reExpenseSlip = reExpenseSlipService.getById(reqDTO.getId());
 		if(reExpenseSlip==null) {
 			result.error500("未找到对应实体");
 		}else {
@@ -164,4 +164,17 @@ public class ReExpenseSlipController {
 		}
 		return result;
 	}
+
+	@ApiOperation(value = "通过id查询主子表", notes = "通过id查询主子表")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name="id", value="id",required=false, dataType="String"),
+	})
+	@GetMapping(value = "/getListById")
+	public Result<ExpenseSlipRespDTO> getListById(ExpenseSlipReqDTO  reqDTO) {
+		Result<ExpenseSlipRespDTO> result = new Result<ExpenseSlipRespDTO>();
+		ExpenseSlipRespDTO respDTO = reExpenseSlipService.getListById(reqDTO.getId());
+			result.setResult(respDTO);
+			result.setSuccess(true);
+		return result;
+	}
 }

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

@@ -1,6 +1,7 @@
 package org.jeecg.modules.expense.entity;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.Date;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -31,6 +32,8 @@ public class ReExpenseSlipProject implements Serializable {
     private String costId;
 	@ApiModelProperty("费用项目名称")
 	private String costName;
+	@ApiModelProperty("金额")
+	private BigDecimal price;
 	@ApiModelProperty("创建时间")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@@ -56,6 +59,7 @@ public class ReExpenseSlipProject implements Serializable {
 		this.costId = detail.getCostId();
 		this.costName = detail.getCostName();
 		this.delFlag = "0";
+		this.price = detail.getPrice();
 	}
 
 	public ReExpenseSlipProject(String delFlag) {

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

@@ -1,6 +1,7 @@
 package org.jeecg.modules.expense.service;
 
 import org.jeecg.common.dto.expense.ExpenseSlipAddReqDTO;
+import org.jeecg.common.dto.expense.ExpenseSlipRespDTO;
 import org.jeecg.modules.expense.entity.ReExpenseSlip;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -19,4 +20,12 @@ public interface ReExpenseSlipService extends IService<ReExpenseSlip> {
      * @desc 编辑
      */
     boolean edit(ExpenseSlipAddReqDTO reqDTO);
+    /**
+     * @desc 根据id删除主子表
+     */
+    boolean deleteById(ReExpenseSlip reExpenseSlip);
+    /**
+     * @desc 根据id查询主子表
+     */
+    ExpenseSlipRespDTO getListById(String id);
 }

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

@@ -4,6 +4,8 @@ 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.common.dto.expense.ExpenseSlipProjectListRespDTO;
+import org.jeecg.common.dto.expense.ExpenseSlipRespDTO;
 import org.jeecg.modules.expense.entity.ReExpenseSlip;
 import org.jeecg.modules.expense.entity.ReExpenseSlipProject;
 import org.jeecg.modules.expense.mapper.ReExpenseSlipMapper;
@@ -51,6 +53,47 @@ public class ReExpenseSlipServiceImpl extends ServiceImpl<ReExpenseSlipMapper, R
         return true;
     }
 
+    /**
+     * @desc 根据id删除主子表
+     */
+    @Override
+    public boolean deleteById(ReExpenseSlip reExpenseSlip) {
+        reExpenseSlip.setDelFlag("1");
+        updateById(reExpenseSlip);
+        //删除子表
+        deleteChildren(reExpenseSlip.getId());
+        return true;
+    }
+
+    /**
+     * @desc 根据id查询主子表
+     */
+    @Override
+    public ExpenseSlipRespDTO getListById(String id) {
+        ReExpenseSlip slip = getById(id);
+        ExpenseSlipRespDTO respDTO = new ExpenseSlipRespDTO(slip);
+        //设置子表
+        respDTO.setDetailList(getChildren(id));
+        return respDTO;
+    }
+
+
+
+    /**
+     * @desc 获取子表
+     */
+    private List<ExpenseSlipProjectListRespDTO> getChildren(String id) {
+        QueryWrapper<ReExpenseSlipProject> queryWrapper = new QueryWrapper();
+        queryWrapper.eq("del_flag", "0");
+        queryWrapper.eq("expense_id", id);
+        List<ReExpenseSlipProject> list = reExpenseSlipProjectService.list(queryWrapper);
+        List<ExpenseSlipProjectListRespDTO> respDTOS = Lists.newArrayList();
+        for(ReExpenseSlipProject project : list){
+            respDTOS.add(new ExpenseSlipProjectListRespDTO(project));
+        }
+        return respDTOS;
+    }
+
     /**
      * @desc 删除子表
      */