Explorar el Código

人员报销详情添加报销对应参数展示;
业务报销详情添加报销对应参数展示;
人员删除添加删除判断等功能

user5 hace 3 años
padre
commit
da2e10ad80

+ 3 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/controller/ReimbursementBusinessController.java

@@ -7,6 +7,7 @@ import com.jeeplus.aop.demo.annotation.DemoMode;
 import com.jeeplus.aop.logging.annotation.ApiLog;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessDTO;
+import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessReturnDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementUserDTO;
 import com.jeeplus.test.reimbursementsys.service.ReimbursementBusinessService;
@@ -15,7 +16,6 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -128,7 +128,7 @@ public class ReimbursementBusinessController {
         }
         ReimbursementBusinessDTO reimbursementBusiness = new ReimbursementBusinessDTO();
         reimbursementBusiness.setBusinessCodeId(id);
-        List<ReimbursementBusinessDTO> list = service.findListByBusinessCodeId(reimbursementBusiness);
-        return ResponseEntity.ok(list);
+        ReimbursementBusinessReturnDTO info = service.findListByBusinessCodeId(reimbursementBusiness);
+        return ResponseEntity.ok(info);
     }
 }

+ 8 - 6
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/controller/ReimbursementUserController.java

@@ -6,7 +6,7 @@ import com.google.common.collect.Lists;
 import com.jeeplus.aop.demo.annotation.DemoMode;
 import com.jeeplus.aop.logging.annotation.ApiLog;
 import com.jeeplus.sys.utils.StringUtils;
-import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessDTO;
+import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessReturnDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementUserDTO;
 import com.jeeplus.test.reimbursementsys.service.ReimbursementUserService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,7 +14,6 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -82,8 +81,11 @@ public class ReimbursementUserController {
     @DeleteMapping("delete")
     public ResponseEntity delete(String ids) {
         String idArray[] =ids.split(",");
-        service.delete ( Lists.newArrayList (idArray) );
-        return ResponseEntity.ok ("删除成功!");
+        Map<String, Object> result = service.delete(Lists.newArrayList(idArray));
+        if(!(Boolean) result.get("success")){
+            return ResponseEntity.badRequest ().body (result.get("message"));
+        }
+        return ResponseEntity.ok (result.get("message"));
     }
 
 
@@ -105,7 +107,7 @@ public class ReimbursementUserController {
         if(null == reimbursementUserDTO){
             return ResponseEntity.badRequest ().body ("报销人员信息无效,请重新选择");
         }
-        List<ReimbursementBusinessDTO> list = service.findListByUserId(reimbursementUserDTO);
-        return ResponseEntity.ok(list);
+        ReimbursementBusinessReturnDTO info = service.findListByUserId(reimbursementUserDTO);
+        return ResponseEntity.ok(info);
     }
 }

+ 28 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/domain/dto/ReimbursementBusinessReturnDTO.java

@@ -0,0 +1,28 @@
+package com.jeeplus.test.reimbursementsys.domain.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 报销信息表(返回信息表)
+ * @author: 徐滕
+ * @version: 2022-05-16 11:06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ReimbursementBusinessReturnDTO{
+
+    private static final long serialVersionUID = 1L;
+
+    private String reimbursementDay;  //报销天数
+    private String alreadyReimbursementDay;  //已报销天数
+    private String surplusReimbursementDay;  //剩余报销天数
+    private String reimbursementQuota;  //报销额度
+    private String alreadyReimbursementAmount;  //已报销额度
+    private String surplusReimbursementAmount;  //剩余报销额度
+    private List<ReimbursementBusinessDTO> list;
+
+
+}

+ 5 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/domain/dto/ReimbursementUserDTO.java

@@ -28,4 +28,9 @@ public class ReimbursementUserDTO extends BaseEntity {
     private String remarks; //备注
 
 
+    private String alreadyReimbursementDay;  //已报销天数
+    private String surplusReimbursementDay;  //剩余报销天数
+    private String surplusReimbursementAmount;  //剩余报销额度
+
+
 }

+ 2 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/ReimbursementBusinessService.java

@@ -3,6 +3,7 @@ package com.jeeplus.test.reimbursementsys.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessDTO;
+import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessReturnDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementUserDTO;
 
@@ -76,5 +77,5 @@ public interface ReimbursementBusinessService {
      * @param reimbursementBusiness
      * @return
      */
-    List<ReimbursementBusinessDTO> findListByBusinessCodeId(ReimbursementBusinessDTO reimbursementBusiness);
+    ReimbursementBusinessReturnDTO findListByBusinessCodeId(ReimbursementBusinessDTO reimbursementBusiness);
 }

+ 3 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/ReimbursementUserService.java

@@ -2,7 +2,7 @@ package com.jeeplus.test.reimbursementsys.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessDTO;
+import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessReturnDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementUserDTO;
 
 import java.util.List;
@@ -54,12 +54,12 @@ public interface ReimbursementUserService {
      * 根据id删除人员报销信息(物理删除)
      * @param idList
      */
-    void delete(List<String> idList);
+    Map<String,Object> delete(List<String> idList);
 
     /**
      * 查询人员报销信息列表
      * @param reimbursementUserDTO
      * @return
      */
-    List<ReimbursementBusinessDTO> findListByUserId(ReimbursementUserDTO reimbursementUserDTO);
+    ReimbursementBusinessReturnDTO findListByUserId(ReimbursementUserDTO reimbursementUserDTO);
 }

+ 15 - 2
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/impl/ReimbursementBusinessServiceImpl.java

@@ -7,6 +7,7 @@ import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessDTO;
+import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessReturnDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementUserDTO;
 import com.jeeplus.test.reimbursementsys.mapper.ReimbursementBusinessMapper;
@@ -214,8 +215,20 @@ public class ReimbursementBusinessServiceImpl implements ReimbursementBusinessSe
 
 
     @Override
-    public List<ReimbursementBusinessDTO> findListByBusinessCodeId(ReimbursementBusinessDTO reimbursementBusiness) {
-        return mapper.findListByBusinessCodeId (reimbursementBusiness);
+    public ReimbursementBusinessReturnDTO findListByBusinessCodeId(ReimbursementBusinessDTO reimbursementBusiness) {
+        List<ReimbursementBusinessDTO> list = mapper.findListByBusinessCodeId(reimbursementBusiness);
+
+        ReimbursementBusinessReturnDTO reimbursementBusinessReturnDTO = new ReimbursementBusinessReturnDTO();
+        //获取业务报销信息
+        ReimbursementDTO business = this.getBusinessById(reimbursementBusiness.getBusinessCodeId());
+        reimbursementBusinessReturnDTO.setList(list);
+        //剩余报销额度
+        reimbursementBusinessReturnDTO.setSurplusReimbursementAmount(business.getSurplusReimbursementAmount());
+        //已报销额度
+        reimbursementBusinessReturnDTO.setAlreadyReimbursementAmount(business.getAllAlreadyReimbursementQuota());
+        //总报销额度
+        reimbursementBusinessReturnDTO.setReimbursementQuota(business.getCanReimbursementAmount());
+        return reimbursementBusinessReturnDTO;
     }
 
 }

+ 84 - 5
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/impl/ReimbursementUserServiceImpl.java

@@ -2,10 +2,12 @@ package com.jeeplus.test.reimbursementsys.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.Lists;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessDTO;
+import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessReturnDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementUserDTO;
 import com.jeeplus.test.reimbursementsys.mapper.ReimbursementBusinessMapper;
 import com.jeeplus.test.reimbursementsys.mapper.ReimbursementUserMapper;
@@ -13,6 +15,7 @@ import com.jeeplus.test.reimbursementsys.service.ReimbursementUserService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -47,7 +50,29 @@ public class ReimbursementUserServiceImpl implements ReimbursementUserService {
 
     @Override
     public IPage<ReimbursementUserDTO> findList(Page<ReimbursementUserDTO> page, ReimbursementUserDTO reimbursementUser) {
-        return mapper.findList (page, reimbursementUser);
+        IPage<ReimbursementUserDTO> pageList = mapper.findList(page, reimbursementUser);
+        List<ReimbursementUserDTO> list = pageList.getRecords();
+
+        if(null != list && list.size()>0){
+            for (ReimbursementUserDTO userDTO: list) {
+                ReimbursementUserDTO reimbursementUserDTO = new ReimbursementUserDTO();
+                reimbursementUserDTO.setUserId(userDTO.getUserId());
+                reimbursementUserDTO.setYear(userDTO.getYear());
+                ReimbursementBusinessReturnDTO businessReturnDTO = this.findListByUserId(reimbursementUserDTO);
+
+                //剩余报销额度
+                userDTO.setSurplusReimbursementAmount(businessReturnDTO.getSurplusReimbursementAmount());
+                //剩余报销天数
+                userDTO.setSurplusReimbursementDay(businessReturnDTO.getSurplusReimbursementDay());
+                //已报销天数
+                userDTO.setAlreadyReimbursementDay(businessReturnDTO.getAlreadyReimbursementDay());
+                //已报销额度
+                userDTO.setAlreadyReimbursementAmount(businessReturnDTO.getAlreadyReimbursementAmount());
+            }
+
+        }
+        pageList.setRecords(list);
+        return pageList;
     }
 
     /**
@@ -108,17 +133,71 @@ public class ReimbursementUserServiceImpl implements ReimbursementUserService {
     }
 
     @Override
-    public void delete(List<String> idList) {
+    public Map<String,Object> delete(List<String> idList) {
+        Map<String,Object> map = new HashMap<>();
+        List<String> userName = Lists.newArrayList();
         //删除发票信息
-        mapper.delete(idList);
+        //判断该人员该年度是否已经存在报销情况,如存在则不可以删除
+        //根据id集合查询人员信息
+        for (String id: idList) {
+            ReimbursementUserDTO reimbursementUserDTO = mapper.queryById(id);
+            ReimbursementBusinessDTO reimbursementBusiness = new ReimbursementBusinessDTO();
+            reimbursementBusiness.setUserId(reimbursementUserDTO.getUserId());
+            reimbursementBusiness.setYear(reimbursementUserDTO.getYear());
+            List<ReimbursementBusinessDTO> list = businessMapper.findListByUserIdAndYear(reimbursementBusiness);
+            if(list.size()>0){
+                userName.add(reimbursementUserDTO.getUser().getName());
+            }
+        }
+        if(userName.size()>0){
+            map.put("success",false);
+            String userNames = StringUtils.join(userName, "、");
+            map.put("message", "员工 " + userNames + " 存在已报销情况,本次删除失败");
+        }else{
+            mapper.delete(idList);
+            map.put("success",true);
+            map.put("message", "删除成功");
+        }
+        return map;
     }
 
     @Override
-    public List<ReimbursementBusinessDTO> findListByUserId(ReimbursementUserDTO reimbursementUserDTO) {
+    public ReimbursementBusinessReturnDTO findListByUserId(ReimbursementUserDTO reimbursementUserDTO) {
         ReimbursementBusinessDTO reimbursementBusiness = new ReimbursementBusinessDTO();
         reimbursementBusiness.setUserId(reimbursementUserDTO.getUserId());
         reimbursementBusiness.setYear(reimbursementUserDTO.getYear());
-        return businessMapper.findListByUserIdAndYear(reimbursementBusiness);
+        ReimbursementBusinessReturnDTO reimbursementBusinessReturnDTO = new ReimbursementBusinessReturnDTO();
+        List<ReimbursementBusinessDTO> list = businessMapper.findListByUserIdAndYear(reimbursementBusiness);
+
+            //获取人员年度报销详情
+            ReimbursementUserDTO reimbursementUserInfo = mapper.queryByUserIdAndYear(reimbursementUserDTO);
+            reimbursementBusinessReturnDTO.setList(list);
+            reimbursementBusinessReturnDTO.setReimbursementQuota(reimbursementUserInfo.getReimbursementQuota());
+
+            //已报销额度
+            BigDecimal alreadyReimbursementAmount = new BigDecimal("0");
+            //已报销天数
+            BigDecimal alreadyReimbursementDay = new BigDecimal("0");
+
+            for (ReimbursementBusinessDTO info : list) {
+                BigDecimal bigDecimal = new BigDecimal(info.getReimbursementAmount());
+                alreadyReimbursementAmount = alreadyReimbursementAmount.add(bigDecimal);
+                alreadyReimbursementDay = alreadyReimbursementDay.add(new BigDecimal(info.getReimbursementDay()));
+            }
+            //剩余报销额度
+            reimbursementBusinessReturnDTO.setSurplusReimbursementAmount(new BigDecimal(reimbursementBusinessReturnDTO.getReimbursementQuota()).subtract(alreadyReimbursementAmount).toString());
+            //计算出可报销总天数
+            BigDecimal reimbursementDay = new BigDecimal(reimbursementBusinessReturnDTO.getReimbursementQuota()).divide(new BigDecimal(reimbursementUserInfo.getReimbursementQuotaDay()));
+            //剩余报销天数
+            reimbursementBusinessReturnDTO.setSurplusReimbursementDay(reimbursementDay.subtract(alreadyReimbursementDay).toString());
+            //报销天数
+            reimbursementBusinessReturnDTO.setReimbursementDay(reimbursementDay.toString());
+            //已报销天数
+            reimbursementBusinessReturnDTO.setAlreadyReimbursementDay(alreadyReimbursementDay.toString());
+            //已报销额度
+            reimbursementBusinessReturnDTO.setAlreadyReimbursementAmount(alreadyReimbursementAmount.toString());
+
+        return reimbursementBusinessReturnDTO;
     }
 
 }