From 28c168589258f36b31fdb39add938e564804b3b1 Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期一, 13 三月 2023 20:01:39 +0800
Subject: [PATCH] Default Changelist

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceReimbursementController.java |  300 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 270 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 b7da5fd..5f4147b 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
@@ -1,49 +1,44 @@
 package com.ruoyi.web.controller.project;
 
-import java.io.*;
-import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.constant.HttpStatus;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.HttpClientKit;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.project.domain.*;
 import com.ruoyi.project.domain.dto.ServiceReimbursementDto;
 import com.ruoyi.project.domain.vo.CheckFundVO;
 import com.ruoyi.project.domain.vo.SpFinancialExpensesIn;
 import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut;
 import com.ruoyi.project.service.*;
-import com.ruoyi.system.domain.SysPost;
 import com.ruoyi.system.service.ISysPostService;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
 import freemarker.template.TemplateException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.ibatis.annotations.Options;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
-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.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.annotation.RepeatSubmit;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.common.core.page.TableDataInfo;
-import freemarker.template.Configuration;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.*;
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+
 
 /**
  * 鎶ラ攢鐢宠Controller
@@ -58,6 +53,9 @@
 {
     @Autowired
     private IServiceReimbursementService serviceReimbursementService;
+
+    @Autowired
+    private IServiceReimbursementSharedService serviceReimbursementServiceShare;
 
     @Autowired
     private IServiceReimbursementdetailService serviceReimbursementdetailService;
@@ -204,9 +202,246 @@
     @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);
+    }
+
+    public  int addReiSharedDatd(ServiceReimbursement serviceReimbursement,int nType)
+    {
+        //remShare = ;
+        ServiceReimbursementShared remShare = null;
+        if(nType == 1)
+       {
+            remShare = new ServiceReimbursementShared();
+            remShare.setReimid(serviceReimbursement.getId());
+        }
+        else //modify
+        {
+            List<ServiceReimbursementShared> remlist = serviceReimbursementServiceShare.getRemShareInfoByRemId(serviceReimbursement.getId());
+            if(remlist!=null)
+                remShare =remlist.get(0);
+        }
+
+        remShare.setUserno(serviceReimbursement.getUserno());
+        remShare.setUsername(serviceReimbursement.getUsername());
+        remShare.setTravelers(serviceReimbursement.getTravelers());
+        remShare.setIdcardtype(serviceReimbursement.getIdcardtype());
+        remShare.setIdcardno(serviceReimbursement.getIdcardno());
+        remShare.setPhone(serviceReimbursement.getPhone());
+        remShare.setDepositbank(serviceReimbursement.getDepositbank());
+        remShare.setBankcardno(serviceReimbursement.getBankcardno());
+        remShare.setBranchbankname(serviceReimbursement.getBranchbankname());
+        remShare.setAnnexbankcard(serviceReimbursement.getAnnexbankcard());
+        remShare.setAnnexfiles(serviceReimbursement.getAnnexfiles());
+       // remShare.setAmountrequested(BigDecimal.valueOf(serviceReimbursement.getAmountrequested()));
+
+        Double nTemp = serviceReimbursement.getAmountrequested();
+        if( nTemp == null) nTemp = 0d;
+        remShare.setAmountrequested(BigDecimal.valueOf(nTemp));
+
+        nTemp = serviceReimbursement.getPrepaidamount();
+        if(nTemp == null) nTemp = 0.0;
+        remShare.setPrepaidamount(BigDecimal.valueOf(nTemp));
+
+        remShare.setInvoicecount(serviceReimbursement.getInvoicecount());
+        remShare.setAttachcount(serviceReimbursement.getAttachcount());
+        remShare.setManagerno(serviceReimbursement.getManagerno());
+        remShare.setManagername(serviceReimbursement.getManagername());
+        remShare.setDeptmentno(serviceReimbursement.getDeptmentno());
+        remShare.setDeptmentname(serviceReimbursement.getDeptmentname());
+        remShare.setOpochecker(serviceReimbursement.getOpochecker());
+        remShare.setFinvicepresident(serviceReimbursement.getFinvicepresident());
+        remShare.setBusvicepresident(serviceReimbursement.getBusvicepresident());
+        remShare.setOfficedirector(serviceReimbursement.getOfficedirector());
+        remShare.setFinancedirector(serviceReimbursement.getFinancedirector());
+        remShare.setFinancechecher(serviceReimbursement.getFinancechecher());
+        remShare.setInfoid(serviceReimbursement.getInfoid());
+        remShare.setDonorno(serviceReimbursement.getDonorno());
+
+        remShare.setDonorname(serviceReimbursement.getDonorname());
+        remShare.setReason(serviceReimbursement.getReason());
+        remShare.setRecordstatus(serviceReimbursement.getRecordstatus());
+        remShare.setUploadflag(serviceReimbursement.getUploadflag());
+        remShare.setUploadtime(serviceReimbursement.getUploadtime());
+
+        nTemp = serviceReimbursement.getTotalamount();
+        if(nTemp == null) nTemp = 0.0;
+        remShare.setTotalamount(BigDecimal.valueOf(nTemp));
+
+        remShare.setBigstrmoney(serviceReimbursement.getBigstrmoney());
+        remShare.setFlowlevel(serviceReimbursement.getFlowlevel());
+        remShare.setCosttype(serviceReimbursement.getCosttype());
+        remShare.setCosttypename(serviceReimbursement.getCosttypename());
+        remShare.setFileurl(serviceReimbursement.getFileurl());
+        //remShare.setOaid(serviceReimbursement.getOaid());
+        //remShare.setDonorno(serviceReimbursement.getDonorno());
+
+        boolean bRet = false;
+        if(nType==1)
+        {
+            bRet = serviceReimbursementServiceShare.save(remShare);
+        }
+        else
+        {
+            //remShare.setId(serviceReimbursement.);
+            bRet = serviceReimbursementServiceShare.updateById(remShare);
+        }
+
+        //if(!bRet) return -1;
+        String strMutfileUrl = remShare.getFileurl();
+        //鏈夐檮浠舵椂鎵嶈皟鐢ㄧ涓夋柟杩涜涓婁紶
+        if(strMutfileUrl == null) return 0;
+        if(strMutfileUrl.isEmpty()) return 0;
+
+        try
+        {
+            uploadOAFileAndUpdateDb(remShare);
+        }
+        catch (Exception e)
+        {
+            logger.error("璋冪敤绗笁鏂规帴鍙e嚭閿�!");
+            e.printStackTrace();
+        }
+
+        //姝ゅ淇濆瓨鎴愬姛鍚庤涓婁紶OA锛屼繚瀛樿繑鍥炲��
+
+        return  0;
+    }
+
+
+    int uploadOAFileAndUpdateDb(ServiceReimbursementShared remShare)
+    {
+            //涓婁紶OA鏂囦欢
+        //String strUrl = "http://129.88.242.39:8899/seeyon/rest/token?userName=opo&password=127814f8-84e8-4304-84a5-a71573567efd&loginName=demo3";
+        String strUrl = "http://129.88.242.39:8899/seeyon/rest/token";
+        //String strUrl = "http://slb.hospitalstar.com:8899/seeyon/rest/token";
+            //涓婁紶鏂囦欢鎴愬姛鍚庯紝鍘绘洿鏂扮浉鍏崇殑鏁版嵁搴�
+
+
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("userName","opo");
+        map.put("password","4126407a-9821-4874-be41-6568abd6dbe5");
+        map.put("loginName","demo3");
+
+        JSONObject jsonObj =  new JSONObject(map);
+
+        System.out.println("uploadOAFileAndUpdateDb + jsonObject"+jsonObj.toString() + "\r\n" + jsonObj.toJSONString());
+        String strRes = HttpClientKit.postOpr(strUrl,jsonObj.toString());//
+        //String strRes = HttpClientKit.postMsg(strUrl,jsonObj);//寰楀埌杩斿洖鐨則oken?
+
+        JSONObject json1 = JSONObject.parseObject(strRes);
+        strRes = json1.get("id").toString();
+
+        ///if(strRes.isEmpty() || "" == strRes) return -1;// 涓虹┖浠h〃澶辫触
+
+        //涓嬮潰闇�姹傝皟鐢ㄦ枃浠剁殑鎺ュ彛锛岃皟鐢ㄦ垚鍔熻繑鍥炲悗锛屽緱鍒癴ilename鍜宖ileid 鐢ㄨ繖浜屼釜鍊煎幓鏇存柊鏁版嵁
+
+         String filePath = RuoYiConfig.getUploadPath();
+         String strMutfileUrl = remShare.getFileurl();//鍙兘瀛樺湪澶氫釜鍦板潃锛屼互,鍒嗗紑
+
+        String strFUrl = "http://129.88.242.39:8899/seeyon/rest/attachment?token=%s"+strRes;
+        //String strFUrl = "http://slb.hospitalstar.com:8899/seeyon/rest/attachment?token="+strRes;
+        //strFUrl = String.format(strFUrl, strRes);
+
+        /*File test = null;
+        File file = new File("E:\\YYJQ\\OPO\\WEB\\Upload\\upload\\2023\\02\\17");
+        if (file.exists() && file.isDirectory()) {
+            // 鑾峰彇鎵�鏈夌洸鐩掓枃浠跺す
+            File[] ones = file.listFiles();
+            for (File one : ones) {
+                test = one;
+            }
+        }*/
+
+        String filename = "";
+        String fileid = "";
+
+        String[] urlArray = strMutfileUrl.split(",");
+        for (int i = 0; i < urlArray.length; i++)
+        {
+            String strOneFileName = urlArray[i];
+            String strTemp = strOneFileName.substring(15);
+            String strFile = filePath  + strTemp ;
+            //FileUploadUtils.getAbsoluteFile(filePath,strOneFileName);
+            String struploadResult = "";
+            File filetest = new File(strFile);
+            try
+            {
+                struploadResult = HttpClientKit.sendPostWithFile(filetest,strFUrl);
+            }
+            catch (Exception e)
+            {
+                e.printStackTrace();
+            }
+
+
+            /*CloseableHttpClient httpClient = HttpClients.createDefault();
+            //鍒涘缓post鏂规硶杩炴帴瀹炰緥锛屽湪post鏂规硶涓紶鍏ュ緟杩炴帴鍦板潃
+            HttpPost httpPost = new HttpPost(strFUrl);
+            CloseableHttpResponse response = null;
+
+            String struploadResult = "";
+            try {
+                //璁剧疆璇锋眰鍙傛暟锛堢被浼糷tml椤甸潰涓璶ame灞炴�э級
+                MultipartEntityBuilder entity = MultipartEntityBuilder.create();
+                //entity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
+                entity.setCharset(Charset.forName("UTF-8"));
+
+                byte[] fileBytes = Files.readAllBytes(Paths.get(strFile));
+                if (fileBytes != null) {
+                    //鍐呭绫诲瀷锛岀敤浜庡畾涔夌綉缁滄枃浠剁殑绫诲瀷鍜岀綉椤电殑缂栫爜锛屽喅瀹氭枃浠舵帴鏀舵柟灏嗕互浠�涔堝舰寮忋�佷粈涔堢紪鐮佽鍙栬繖涓枃浠�
+                    ContentType OCTEC_STREAM = ContentType.create("application/octet-stream", Charset.forName("UTF-8"));
+                    //娣诲姞鏂囦欢
+                    entity.addBinaryBody("file", fileBytes, OCTEC_STREAM, strTemp);
+                }
+
+                httpPost.setEntity(entity.build());
+                //鍙戣捣璇锋眰锛屽苟杩斿洖璇锋眰鍝嶅簲
+                response = httpClient.execute(httpPost);
+                struploadResult = EntityUtils.toString(response.getEntity(), "utf-8");
+            }
+            catch (Exception e)
+            {
+                e.printStackTrace();
+            }*/
+
+            //String strFRes = HttpClientKit.postMsg(strFUrl,jsonFObj);
+            if(struploadResult == null) return 0;
+            if(struploadResult.isEmpty()) return 0;
+
+            JSONObject jsonR = JSONObject.parseObject(struploadResult);
+
+            JSONArray jsonArr = jsonR.getJSONArray("atts");
+            for(int j=0;j<jsonArr.size();j++)
+            {
+                JSONObject jsonRet = jsonArr.getJSONObject(j);
+                String name1= jsonRet.get("filename").toString();
+                String id1 = jsonRet.get("fileUrl").toString();
+                filename+=name1;
+                fileid+=id1;
+                if(i!=urlArray.length-1)
+                {
+                    filename+=",";
+                    fileid+=",";
+                }
+            }
+
+        }
+
+       long nId = remShare.getId();
+       remShare.setId(nId);
+       remShare.setFilename(filename);
+       remShare.setFileid(fileid);
+       boolean bRet = serviceReimbursementServiceShare.updateById(remShare);
+       if(!bRet) return -1;
+
+        return 0;
     }
 
     /**
@@ -227,12 +462,12 @@
 
             if(!postids.contains(2))
             {
-                serviceReimbursement.setFlowlevel(1);
+                serviceReimbursement.setFlowlevel(1L);
                 serviceReimbursement.setRecordstatus(2);
             }
             else
             {
-                serviceReimbursement.setFlowlevel(0);
+                serviceReimbursement.setFlowlevel(0L);
                 serviceReimbursement.setRecordstatus(0);
             }
 
@@ -294,8 +529,8 @@
                 TotalLevel=serviceFundflowrules.get(0).getTotallevel();
             }
             Integer CheckFlag=0;
-            Integer RecordStatus=serviceReimbursement.getRecordstatus();
-            Integer FlowLevel=serviceReimbursement.getFlowlevel();
+            Integer RecordStatus = serviceReimbursement.getRecordstatus();
+            Integer FlowLevel = Integer.valueOf(serviceReimbursement.getFlowlevel().toString());
             Integer OriginalFlowLevel=FlowLevel;
             if(checkFundVO.getFlowconclusion()==1)
             {
@@ -329,7 +564,7 @@
             }
 
             serviceReimbursement.setRecordstatus(RecordStatus);
-            serviceReimbursement.setFlowlevel(FlowLevel);
+            serviceReimbursement.setFlowlevel(Long.valueOf(FlowLevel.toString()));
 
             ServiceFundflow serviceFundflow=new ServiceFundflow();
             SysUser user = loginUser.getUser();
@@ -410,7 +645,12 @@
     @RepeatSubmit    
     public AjaxResult edit(@RequestBody ServiceReimbursement serviceReimbursement)
     {
-        return toAjax(serviceReimbursementService.updateById(serviceReimbursement));
+        boolean b= serviceReimbursementService.updateById(serviceReimbursement);
+        if(b)
+        {
+            addReiSharedDatd(serviceReimbursement,2);
+        }
+        return toAjax(b);
     }
 
     /**

--
Gitblit v1.9.3