From 6f344e6360751574f7e03b21c00cfa3f4b2bc099 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 10 十一月 2023 15:41:41 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java |  150 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 117 insertions(+), 33 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 b7533d6..89a96cb 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
@@ -31,6 +31,7 @@
 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.*;
@@ -74,6 +75,9 @@
     private IServiceFundService serviceFundService;
 
     @Autowired
+    private IBaseOnlyvalueService baseOnlyvalueService;
+
+    @Autowired
     private ISysPostService postService;
 
     @Autowired
@@ -100,6 +104,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);
@@ -130,8 +135,10 @@
         String APPLICATIONENDTIME = spFinancialExpensesIn.getAPPLICATIONENDTIME();
         Integer CHECKFLAG = spFinancialExpensesIn.getCHECKFLAG();
         Integer APPLYTYPE = spFinancialExpensesIn.getAPPLYTYPE();
+        Integer checkstatus = spFinancialExpensesIn.getCheckstatus();
         Integer pageNum = spFinancialExpensesIn.getPageNum();
         Integer pageSize = spFinancialExpensesIn.getPageSize();
+        String donorname = spFinancialExpensesIn.getDonorname();
 
         if (pageNum == null) {
             pageNum = 1;
@@ -153,11 +160,21 @@
             APPLICATIONENDTIME = "";
         }
         //startPage();
-        List<SpFinancialExpensesReimbursementOut> list = serviceReimbursementService.getListBypower(loginUser.getUsername(), 1, APPLICANT, APPLICATIONBEGTIME, APPLICATIONENDTIME, loginUser.getDeptId().toString(), CHECKFLAG, APPLYTYPE);
+        List<SpFinancialExpensesReimbursementOut> list = serviceReimbursementService.getListBypower(loginUser.getUsername(), 1, APPLICANT, APPLICATIONBEGTIME, APPLICATIONENDTIME, loginUser.getDeptId().toString(), CHECKFLAG, APPLYTYPE, checkstatus, donorname);
+        //鏍规嵁缁忓姙浜虹瓫閫�
+        if (StringUtils.isNotBlank(spFinancialExpensesIn.getUsername())) {
+            list = list.stream().filter(reimbursementOut -> reimbursementOut.getUsername().contains(spFinancialExpensesIn.getUsername())).collect(Collectors.toList()); // 鎸塶ame瀛楁杩囨护
+        }
+        //鏍规嵁閲戦绛涢��
+        if (spFinancialExpensesIn.getMoney() != null) {
+            list = list.stream().filter(reimbursementOut -> new BigDecimal(reimbursementOut.getAmountrequested()).compareTo(new BigDecimal(spFinancialExpensesIn.getMoney())) == 0).collect(Collectors.toList());
+
+        }
+        //鏍规嵁鍒涘缓鏃堕棿鎺掑簭
         Collections.sort(list, new Comparator<SpFinancialExpensesReimbursementOut>() {
             @Override
             public int compare(SpFinancialExpensesReimbursementOut o1, SpFinancialExpensesReimbursementOut o2) {
-                return o2.getCreateTime().compareTo(o1.getCreateTime());
+                return o1.getCreateTime().compareTo(o2.getCreateTime());
             }
         });
         return getCustomDataTable(list, pageNum, pageSize);
@@ -206,13 +223,13 @@
     @RepeatSubmit
     @Options(useGeneratedKeys = true, keyProperty = "id")
     public AjaxResult add(@RequestBody ServiceReimbursement serviceReimbursement) {
-
-        boolean b = serviceReimbursementService.save(serviceReimbursement);
-//        if (b) {
-//            addReiSharedDatd(serviceReimbursement, 1);
-//        }
-        Long id = serviceReimbursement.getId();
-        return AjaxResult.success(id);
+        if (!Objects.isNull(serviceReimbursement)) {
+            serviceReimbursement.setCheckstatus(serviceReimbursement.getCheckstatus() == null ? 1 : serviceReimbursement.getCheckstatus());
+            boolean b = serviceReimbursementService.save(serviceReimbursement);
+            Long id = serviceReimbursement.getId();
+            return AjaxResult.success(id);
+        }
+        return error();
     }
 
 //    public int addReiSharedDatd(ServiceReimbursement serviceReimbursement, int nType) {
@@ -451,18 +468,22 @@
         //濡傛灉绛変簬100锛岃鏄庡凡缁忚蛋鍒板尰闄㈣储鍔¢偅杈逛簡锛涜储鍔¢偅杈瑰彇鏁版嵁鏄粠鍒嗕韩琛ㄥ彇锛屾墍浠ワ紝杩欓噷鐩存帴寰�鍒嗕韩琛ㄩ噷娣诲姞鏁版嵁灏辫浜�;
         if (!Objects.isNull(serviceReimbursement) && serviceReimbursement.getBackflowlevel() != null) {
             if (serviceReimbursement.getBackflowlevel() == 100 || serviceReimbursement.getBackflowlevel() == 199) {
-
-                //灏嗕慨鏀圭殑涓婃姤鏁版嵁 鏂板涓�鏉�
-                ServiceReimbursementShared serviceReimbursementShared = DtoConversionUtils.sourceToTarget(serviceReimbursement, ServiceReimbursementShared.class);
-                serviceReimbursementShared.setId(null);
-                serviceReimbursementShared.setDelFlag(0L);
-                serviceReimbursementShared.setReimid(serviceReimbursement.getId());
-                serviceReimbursementSharedService.save(serviceReimbursementShared);
-
+//            if (serviceReimbursement.getBackflowlevel() == 199) {
                 //灏嗛��鍥為樁娈佃缃垚100
                 serviceReimbursement.setBackflowlevel(100L);
-                serviceReimbursement.setFlowlevel(100L);
-                serviceReimbursement.setRecordstatus(0);
+                //閫�鍥炲啀鎻愪氦锛岄渶瑕佸啀鍒板嚭绾抽偅閲�
+                serviceReimbursement.setFlowlevel(1L);
+                serviceReimbursement.setRecordstatus(2);
+                serviceReimbursementService.updateById(serviceReimbursement);
+
+                //灏嗕慨鏀圭殑涓婃姤鏁版嵁 鏂板涓�鏉�
+//                serviceReimbursementService.addSharedData(checkFundVO.getFundid());
+
+                return success();
+            } else if (serviceReimbursement.getBackflowlevel() == 2) {
+                //鑱傜閫�鍥炵殑锛屼篃闇�瑕佽蛋鍑虹撼閭i噷
+                serviceReimbursement.setFlowlevel(1L);
+                serviceReimbursement.setRecordstatus(2);
                 serviceReimbursementService.updateById(serviceReimbursement);
                 return success();
             }
@@ -474,16 +495,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());
@@ -550,19 +580,46 @@
                     //99 鍙栨秷
                     RecordStatus = 99;
                 } else {
+
                     if (totalLevel == FlowLevel + 1) {
                         RecordStatus = 99;
                     } else {
                         RecordStatus = (FlowLevel + 1) * 2;
                     }
                 }
+
+                if (serviceReimbursement.getFlowlevel() == 1 && serviceReimbursement.getBackflowlevel() == 100) {
+                    log.info("鍑哄樊琛ヨ创琚� 璐㈠姟閫�鍥炲啀鎻愪氦锛屽嚭绾冲啀娆″鎵癸紝涔嬪悗鎻愪氦鍒拌储鍔�");
+                    //璇存槑鏄储鍔¢��鍥炲啀鎻愪氦鐨�.闇�瑕佸嚭绾冲啀鐪嬩竴閬嶏紝娌¢棶棰樹箣鍚庯紝寰�鍒嗕韩琛ㄩ噷鏂板
+                    serviceReimbursementService.addSharedData(serviceReimbursement.getId());
+                    serviceReimbursement.setFlowlevel(100L);
+                    serviceReimbursement.setRecordstatus(99);
+                    serviceReimbursementService.updateById(serviceReimbursement);
+
+                    //淇濆瓨瀹℃壒娴佺▼琛�
+                    ServiceFundflow serviceFundflow = new ServiceFundflow();
+                    SysUser user = loginUser.getUser();
+                    serviceFundflow.setFundid(serviceReimbursement.getId());
+                    serviceFundflow.setCheckuserno(user.getUserName());
+                    serviceFundflow.setCheckusername(user.getNickName());
+                    serviceFundflow.setFundtype(1);
+                    serviceFundflow.setApplytype("0");
+                    serviceFundflow.setFlowconclusion(CheckFlag);
+                    serviceFundflow.setFlowcontent("閫氳繃");
+                    serviceFundflow.setFlowlevel(OriginalFlowLevel + 1);
+                    Boolean aBoolean = serviceFundflowService.save(serviceFundflow);
+                    return AjaxResult.success();
+                }
+
                 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;
@@ -571,6 +628,8 @@
                         FlowLevel = 0;
                     }
                 }
+
+
             }
 
             serviceReimbursement.setRecordstatus(RecordStatus);
@@ -583,13 +642,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());
             log.info("postService.selectPostListByUserId : {}", postids.size());
-            if (!postids.contains(2)) {
+            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());
@@ -604,6 +667,10 @@
                     serviceReimbursement.setRecordstatus(1);
                 }
 
+            }
+            //001瀹℃壒閫氳繃涔嬪悗锛屽氨闇�瑕佹妸鈥滃姙鍏涓讳换鈥濈殑鍚嶅瓧濉笂
+            if (checkFundVO.getFlowconclusion() == 1 && user.getUserName().equals("001")) {
+                serviceReimbursement.setOfficedirector(user.getNickName());
             }
 
             serviceReimbursementService.updateById(serviceReimbursement);
@@ -623,7 +690,7 @@
                 //閫氳繃
                 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);
+                log.info("totalLevel鐨勫�� : {},  OriginalFlowLevel鐨勫��:{}", totalLevel, OriginalFlowLevel);
                 if (totalLevel == OriginalFlowLevel + 1) {
                     //鎵�鏈夋暟鎹柊澧炲埌澶囦唤琛�
                     serviceReimbursementService.addSharedData(checkFundVO.getFundid());
@@ -648,7 +715,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);
@@ -678,8 +745,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)));
     }
@@ -693,6 +760,7 @@
         Map dataMap = new HashMap();
         getData(dataMap, id);
         String filePath = getClass().getResource("/template/").getPath();
+        log.info("涓嬭浇鍦板潃鏄暐锛燂紵锛焮}", filePath);
         System.out.println(filePath);
         //璁剧疆妯℃湰瑁呯疆鏂规硶鍜岃矾寰�,FreeMarker鏀寔澶氱妯℃澘瑁呰浇鏂规硶銆傚彲浠ラ噸servlet锛宑lasspath锛屾暟鎹簱鏁欑▼瑁呰浇锛�
         configuration.setDirectoryForTemplateLoading(new File(filePath));
@@ -705,7 +773,7 @@
             e.printStackTrace();
         }
         String newTime = String.valueOf(Calendar.getInstance().getTimeInMillis());
-        String name = "宸梾璐规姤閿�鐢宠鍗昣" + dataMap.get("XM") + "_" + newTime;
+        String name = "宸梾璐规姤閿�鐢宠鍗昣" + dataMap.get("JSR") + "_" + newTime;
 
         //杈撳嚭鏂囨。璺緞鍙婂悕绉�
         File outFile = new File(RuoYiConfig.getProfile() + "/download/wordtemplate/" + name + ".doc");
@@ -748,9 +816,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();
@@ -767,7 +841,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);
@@ -866,6 +940,8 @@
         String date = formatter.format(dt);
         String time = date.substring(0, 10);
 
+        dataMap.put("ZB", rdInfoByItem.get(0).getDeptmentname() == null ? "" : rdInfoByItem.get(0).getDeptmentname());
+        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());
@@ -902,6 +978,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