From b113be4dfacb8ce58789b12e8beca6cd9ba8fb3c Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 07 九月 2023 16:58:42 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java |  100 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 70 insertions(+), 30 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
index c210bc5..90cf6dd 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java
@@ -27,9 +27,11 @@
 import freemarker.template.TemplateException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.ibatis.annotations.Options;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.*;
@@ -46,6 +48,7 @@
  * @author ruoyi
  * @date 2022-01-24
  */
+@Slf4j
 @Api("鎶ラ攢鐢宠")
 @RestController
 @RequestMapping("/project/reimbursement")
@@ -98,6 +101,7 @@
     public TableDataInfo list(ServiceReimbursement serviceReimbursement) {
         SysUser user = SecurityUtils.getLoginUser().getUser();
         serviceReimbursement.setCreateBy(user.getUserName());
+        serviceReimbursement.setUsername(user.getNickName());
         startPage();
         List<ServiceReimbursement> list = serviceReimbursementService.queryList(serviceReimbursement);
         return getDataTable(list);
@@ -152,6 +156,10 @@
         }
         //startPage();
         List<SpFinancialExpensesReimbursementOut> list = serviceReimbursementService.getListBypower(loginUser.getUsername(), 1, APPLICANT, APPLICATIONBEGTIME, APPLICATIONENDTIME, loginUser.getDeptId().toString(), CHECKFLAG, APPLYTYPE);
+        if (StringUtils.isNotBlank(spFinancialExpensesIn.getUsername())) {
+            list = list.stream().filter(reimbursementOut -> reimbursementOut.getUsername().contains(spFinancialExpensesIn.getUsername())).collect(Collectors.toList()); // 鎸塶ame瀛楁杩囨护
+        }
+
         Collections.sort(list, new Comparator<SpFinancialExpensesReimbursementOut>() {
             @Override
             public int compare(SpFinancialExpensesReimbursementOut o1, SpFinancialExpensesReimbursementOut o2) {
@@ -446,22 +454,21 @@
     @PostMapping("/travelexpensereport")
     public AjaxResult travelexpensereport(@RequestBody CheckFundVO checkFundVO) {
         ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid());
-        //濡傛灉绛変簬100锛岃鏄庡凡缁忚蛋鍒板尰闄㈣储鍔¢偅杈逛簡锛涜储鍔¢偅杈瑰彇鏁版嵁鏄粠鍒嗕韩琛ㄥ彇锛屾墍浠ワ紝杩欓噷鐩存帴寰�鍒嗕韩琛ㄩ噷娣诲姞鏁版嵁灏辫浜�
-        if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) {
+        //濡傛灉绛変簬100锛岃鏄庡凡缁忚蛋鍒板尰闄㈣储鍔¢偅杈逛簡锛涜储鍔¢偅杈瑰彇鏁版嵁鏄粠鍒嗕韩琛ㄥ彇锛屾墍浠ワ紝杩欓噷鐩存帴寰�鍒嗕韩琛ㄩ噷娣诲姞鏁版嵁灏辫浜�;
+        if (!Objects.isNull(serviceReimbursement) && serviceReimbursement.getBackflowlevel() != null) {
+//            if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) {
+            if (serviceReimbursement.getBackflowlevel() == 199) {
+                //灏嗛��鍥為樁娈佃缃垚100
+                serviceReimbursement.setBackflowlevel(100L);
+                serviceReimbursement.setFlowlevel(100L);
+                serviceReimbursement.setRecordstatus(0);
+                serviceReimbursementService.updateById(serviceReimbursement);
 
-            //灏嗕慨鏀圭殑涓婃姤鏁版嵁 鏂板涓�鏉�
-            ServiceReimbursementShared serviceReimbursementShared = DtoConversionUtils.sourceToTarget(serviceReimbursement, ServiceReimbursementShared.class);
-            serviceReimbursementShared.setId(null);
-            serviceReimbursementShared.setDelFlag(0L);
-            serviceReimbursementShared.setReimid(serviceReimbursement.getId());
-            serviceReimbursementSharedService.save(serviceReimbursementShared);
+                //灏嗕慨鏀圭殑涓婃姤鏁版嵁 鏂板涓�鏉�
+                serviceReimbursementService.addSharedData(checkFundVO.getFundid());
 
-            //灏嗛��鍥為樁娈佃缃垚100
-            serviceReimbursement.setBackflowlevel(100L);
-            serviceReimbursement.setFlowlevel(100L);
-            serviceReimbursement.setRecordstatus(0);
-            serviceReimbursementService.updateById(serviceReimbursement);
-            return success();
+                return success();
+            }
         }
         if (serviceReimbursement != null) {
             Integer TotalLevel = 0;
@@ -470,16 +477,25 @@
             List<Integer> postids = postService.selectPostListByUserId(loginUser.getUserId());
 
             if (!postids.contains(2)) {
-                serviceReimbursement.setFlowlevel(1L);
-                serviceReimbursement.setBackflowlevel(1L);
                 serviceReimbursement.setRecordstatus(2);
+                if (serviceReimbursement.getBackflowlevel() != null) {
+                    serviceReimbursement.setFlowlevel(serviceReimbursement.getBackflowlevel());
+                } else {
+                    serviceReimbursement.setBackflowlevel(1L);
+                    serviceReimbursement.setFlowlevel(1L);
+                }
             } else {
-                serviceReimbursement.setFlowlevel(0L);
                 serviceReimbursement.setRecordstatus(0);
-                serviceReimbursement.setBackflowlevel(0L);
+                if (serviceReimbursement.getBackflowlevel() != null) {
+                    serviceReimbursement.setFlowlevel(serviceReimbursement.getBackflowlevel());
+                } else {
+                    serviceReimbursement.setFlowlevel(0L);
+                    serviceReimbursement.setBackflowlevel(0L);
+                }
+
             }
 
-            if (!postids.contains(2)) {
+            if (!postids.contains(2) && (serviceReimbursement.getBackflowlevel() == null || serviceReimbursement.getBackflowlevel() == 0)) {
                 ServiceFundflow serviceFundflow = new ServiceFundflow();
                 serviceFundflow.setFundid(serviceReimbursement.getId());
                 serviceFundflow.setCheckuserno(user.getUserName());
@@ -508,8 +524,9 @@
     @Log(title = "瀹℃牳璐圭敤", businessType = BusinessType.OTHER)
     @PostMapping("/checkfund")
     public AjaxResult checkFund(@RequestBody CheckFundVO checkFundVO) {
+        log.info("瀹℃牳璐圭敤鐨勫叆鍙� : {}", checkFundVO);
         ServiceReimbursement serviceReimbursement = serviceReimbursementService.getById(checkFundVO.getFundid());
-
+        log.info("瀹℃牳璐圭敤鐨剆erviceReimbursementService.getById杩斿弬 : {}", serviceReimbursement);
         if (serviceReimbursement != null) {
             Integer totalLevel = 0;
             LoginUser loginUser = getLoginUser();
@@ -518,7 +535,7 @@
             serviceFundflowrule.setApplytype("0");
             serviceFundflowrule.setCheckuserno(loginUser.getUsername());
             List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
-
+            log.info("瀹℃牳璐圭敤鐨剆erviceFundflowruleService.queryList杩斿弬 : {}", serviceFundflowrules.size());
             if (serviceFundflowrules == null || serviceFundflowrules.stream().count() == 0) {
                 return AjaxResult.error(HttpStatus.ERROR, "褰撳墠浜哄憳鏃犳璁板綍瀹℃牳鏉冮檺");
             }
@@ -552,12 +569,14 @@
                     }
                 }
                 FlowLevel = FlowLevel + 1;
+                serviceReimbursement.setBackflowlevel(Long.valueOf(FlowLevel));
             } else {
                 CheckFlag = 2;
 
                 if (CheckFlag == 2) {
                     //搴斿尰闄㈣姹傚鏋滃嚭鐜伴��鍥烇紝鐩存帴閫�鍒板彂璧疯��
                     FlowLevel = 0;
+                    RecordStatus = -1;
                 } else {
                     //涓嬮潰鏄師鏉ョ殑鍐欐硶锛屼竴绾т竴绾х殑寰�涓嬮��锛屽尰闄㈢幇鍦ㄤ笉瑕佽繖鏍锋悶浜嗭紝涓嬮潰杩欐浠g爜鍏堜繚鐣欙紝绛夊尰闄㈠洖蹇冭浆鎰忥紝鍐嶇粰鏀惧紑
                     RecordStatus = (FlowLevel + 1) * 2 - 1;
@@ -578,13 +597,17 @@
             serviceFundflow.setFundtype(1);
             serviceFundflow.setApplytype("0");
             serviceFundflow.setFlowconclusion(CheckFlag);
-            serviceFundflow.setFlowcontent(checkFundVO.getFlowcontent());
+            if (StringUtils.isNotBlank(checkFundVO.getFlowcontent())) {
+                serviceFundflow.setFlowcontent(checkFundVO.getFlowcontent());
+            } else {
+                serviceFundflow.setFlowcontent(checkFundVO.getFlowconclusion() == 1 ? "閫氳繃" : "涓嶉�氳繃");
+            }
             serviceFundflow.setFlowlevel(OriginalFlowLevel + 1);
             serviceFundflowService.save(serviceFundflow);
 
             List<Integer> postids = postService.selectPostListByUserId(loginUser.getUserId());
-
-            if (!postids.contains(2)) {
+            log.info("postService.selectPostListByUserId : {}", postids.size());
+            if (!postids.contains(2) && !postids.contains(6) && (serviceReimbursement.getBackflowlevel() == null || serviceReimbursement.getBackflowlevel() == 0)) {
                 if (CheckFlag == 2 && OriginalFlowLevel == 1) {
                     ServiceFundflow serviceFundflowAuto = new ServiceFundflow();
                     serviceFundflowAuto.setFundid(serviceReimbursement.getId());
@@ -596,9 +619,9 @@
                     serviceFundflowAuto.setFlowcontent("闈炰笓鑱屼汉鍛樹簩绾у鏍告嫆缁濆悗鐩存帴閫�鍥炲埌淇敼鐘舵��");
                     serviceFundflowAuto.setFlowlevel(1);
                     serviceFundflowService.save(serviceFundflowAuto);
-
                     serviceReimbursement.setRecordstatus(1);
                 }
+
             }
 
             serviceReimbursementService.updateById(serviceReimbursement);
@@ -613,10 +636,12 @@
             serviceSystemmessage.setIsread(0);
             serviceSystemmessage.setMessagetype(1);
             serviceSystemmessage.setRelevantno(serviceReimbursement.getId());
+            log.info("CheckFlag鐨勫�� : {}", CheckFlag);
             if (CheckFlag == 1) {
                 //閫氳繃
                 serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "绾у鏍搁�氳繃");
                 serviceSystemmessage.setMessagecontent("鎮�" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime()) + "鎻愪氦鐨勫叧浜庢崘鐚渚嬨��" + serviceReimbursement.getDonorname() + "銆戠殑宸梾璐圭敵璇峰凡閫氳繃" + (OriginalFlowLevel + 1) + "绾у鏍�");
+                log.info("totalLevel鐨勫�� : {},  OriginalFlowLevel鐨勫��:{}", totalLevel, OriginalFlowLevel);
                 if (totalLevel == OriginalFlowLevel + 1) {
                     //鎵�鏈夋暟鎹柊澧炲埌澶囦唤琛�
                     serviceReimbursementService.addSharedData(checkFundVO.getFundid());
@@ -641,7 +666,7 @@
     @ApiOperation("淇敼鎶ラ攢鐢宠")
     //@PreAuthorize("@ss.hasPermi('project:reimbursement:edit')")
     @Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.UPDATE)
-    @PutMapping
+    @PostMapping("/reimbursementEdit")
     @RepeatSubmit
     public AjaxResult edit(@RequestBody ServiceReimbursement serviceReimbursement) {
         boolean b = serviceReimbursementService.updateById(serviceReimbursement);
@@ -671,8 +696,8 @@
      */
     @ApiOperation("鍒犻櫎鎶ラ攢鐢宠")
     //@PreAuthorize("@ss.hasPermi('project:reimbursement:remove')")
-    @Log(title = "鎶ラ攢鐢宠", businessType = BusinessType.DELETE)
-    @DeleteMapping("/{ids}")
+    @Log(title = "鎶ラ攢鐢宠")
+    @GetMapping("/remove/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(serviceReimbursementService.removeByIds(Arrays.asList(ids)));
     }
@@ -741,9 +766,15 @@
         ServiceReimbursementEo serviceReimbursementEo = new ServiceReimbursementEo();
         serviceReimbursementEo.setId(id);
         List<ServiceReimbursementEo> rdInfoByItem = serviceReimbursementService.getRDInfoByItem(serviceReimbursementEo);
+        log.info("rdInfoByItem鏄惁涓虹┖ :{}", CollectionUtils.isEmpty(rdInfoByItem) ? null : rdInfoByItem.size());
+        for (int i = 0; i < rdInfoByItem.size(); i++) {
+            ServiceReimbursementEo serviceReimbursementEo1 = rdInfoByItem.get(i);
+            String codeByInfo = PersonType.getCodeByInfo(serviceReimbursementEo1.getPersontype());
+            serviceReimbursementEo1.setPersontype(codeByInfo);
+        }
         //鑾峰彇鎶ラ攢鏀粯淇℃伅
         List<ServiceReimbursementpayee> reimbursementpayeeInfo = reimbursementpayeeService.getReimbursementpayeeInfo(serviceReimbursementEo);
-
+        log.info("reimbursementpayeeInfo鏄惁涓虹┖ :{}", CollectionUtils.isEmpty(reimbursementpayeeInfo) ? null : reimbursementpayeeInfo.size());
         Map<String, List<ServiceReimbursementEo>> listMap = rdInfoByItem.stream().collect(Collectors.groupingBy(ServiceReimbursementEo::getPersontype));
         List<Map<String, BigDecimal>> list = new ArrayList<>();
         StringBuffer FYXM1 = new StringBuffer();
@@ -760,7 +791,7 @@
             BigDecimal keyOneMoney = new BigDecimal(0.00);
             BigDecimal keyTwoMoney = new BigDecimal(0.00);
             for (ServiceReimbursementEo serviceReimbursementEo1 : values) {
-                otherMoney = otherMoney.add(serviceReimbursementEo1.getTrafficexpense()).add(serviceReimbursementEo1.getHotelexpense()).add(serviceReimbursementEo1.getFoodexpenses()).add(serviceReimbursementEo1.getFoodallowance()).add(serviceReimbursementEo1.getOtherexpense()).add(serviceReimbursementEo1.getOtherfeeamount());
+                otherMoney = otherMoney.add(serviceReimbursementEo1.getTrafficexpense()).add(serviceReimbursementEo1.getHotelexpense()).add(serviceReimbursementEo1.getCityfee()).add(serviceReimbursementEo1.getFoodexpenses()).add(serviceReimbursementEo1.getFoodallowance()).add(serviceReimbursementEo1.getOtherexpense()).add(serviceReimbursementEo1.getOtherfeeamount());
             }
             map.put(key, otherMoney);
             list.add(map);
@@ -859,6 +890,7 @@
         String date = formatter.format(dt);
         String time = date.substring(0, 10);
 
+        dataMap.put("XZBH", rdInfoByItem.get(0).getBh() == null ? "" : rdInfoByItem.get(0).getBh());
         dataMap.put("TBYYMMDD", time);
         dataMap.put("BXDFJ", rdInfoByItem.get(0).getAttachcount() == null ? "   " : "" + rdInfoByItem.get(0).getAttachcount());
         dataMap.put("JXZXM", rdInfoByItem.get(0).getDonorname() == null ? "" : rdInfoByItem.get(0).getDonorname());
@@ -895,6 +927,14 @@
         }
         dataMap.put("BXBZ", remark);
 
+        dataMap.put("ZXFZR", StringUtils.isEmpty(rdInfoByItem.get(0).getOpochecker()) ? "" : rdInfoByItem.get(0).getOpochecker());
+//
+        dataMap.put("CWFYZ", StringUtils.isEmpty(rdInfoByItem.get(0).getFinvicepresident()) ? "" : rdInfoByItem.get(0).getFinvicepresident());
+        dataMap.put("YWFYZ", StringUtils.isEmpty(rdInfoByItem.get(0).getBusvicepresident()) ? "" : rdInfoByItem.get(0).getBusvicepresident());
+        dataMap.put("BGSZR", StringUtils.isEmpty(rdInfoByItem.get(0).getOfficedirector()) ? "" : rdInfoByItem.get(0).getOfficedirector());
+        dataMap.put("CWBZR", StringUtils.isEmpty(rdInfoByItem.get(0).getFinancedirector()) ? "" : rdInfoByItem.get(0).getFinancedirector());
+        dataMap.put("CWSH", StringUtils.isEmpty(rdInfoByItem.get(0).getFinancechecher()) ? "" : rdInfoByItem.get(0).getFinancechecher());
+
 
         dataMap.put("YYMMDD", time);
 

--
Gitblit v1.9.3