liusheng
2023-08-09 2c16ba7f4cdfedf4ec05395e20caf9c87f2b5101
修改funddetail文件上传
已修改6个文件
275 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetail.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetailShared.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
@@ -163,10 +163,10 @@
        return AjaxResult.success(serviceFundService.getFundId(infoid));
    }
    @GetMapping("/addFundSharedInfo/{id}")
    public AjaxResult addFundSharedInfo(@PathVariable("id") Long id) {
        return AjaxResult.success(serviceFundService.addFundSharedInfo(id));
    }
//    @GetMapping("/addFundSharedInfo/{id}")
//    public AjaxResult addFundSharedInfo(@PathVariable("id") Long id) {
//        return AjaxResult.success(serviceFundService.addFundSharedInfo(id));
//    }
    @GetMapping("/getFundDetail/{id}")
    public AjaxResult getFundDetail(@PathVariable("id") Long id) {
@@ -534,38 +534,39 @@
                serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "级审核通过");
                serviceSystemmessage.setMessagecontent("您" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceFund.getCreateTime()) + "提交的关于捐献案例【" + serviceFund.getDonorname() + "】的费用申请已通过" + (OriginalFlowLevel + 1) + "级审核");
                if (TotalLevel == OriginalFlowLevel + 1) {
                    ServiceFundShared serviceFundShared = DtoConversionUtils.sourceToTarget(serviceFund, ServiceFundShared.class);
                    serviceFundShared.setId(null);
                    serviceFundShared.setSerfunid(serviceFund.getId());
                    serviceFundShared.setAmountrequested(new BigDecimal(serviceFund.getAmountrequested()));
                    serviceFundShared.setPrepaidamount(new BigDecimal(serviceFund.getPrepaidamount()));
                    serviceFundShared.setTotalcost(new BigDecimal(serviceFund.getTotalcost()));
                    serviceFundShared.setProcurementcost(new BigDecimal(serviceFund.getProcurementcost()));
                    serviceFundShared.setExpertcost(new BigDecimal(serviceFund.getExpertcost()));
                    serviceFundShared.setEthicscost(new BigDecimal(serviceFund.getEthicscost()));
                    serviceFundShared.setMedicalcost(new BigDecimal(serviceFund.getMedicalcost()));
                    serviceFundShared.setFamilycost(new BigDecimal(serviceFund.getFamilycost()));
                    serviceFundShared.setAftercarecost(new BigDecimal(serviceFund.getAftercarecost()));
                    fundSharedService.save(serviceFundShared);
                    Map<String, Object> columnMap = new HashMap<>();
                    columnMap.put("fundID", checkFundVO.getFundid());
                    //获取详情数据
                    List<ServiceFunddetail> serviceFunddetails = serviceFunddetailMapper.selectByMap(columnMap);
                    logger.info("serviceFundController---checkFund的返回值serviceFunddetails :{}", serviceFunddetails);
                    List<ServiceFunddetailShared> serviceFunddetailShareds = DtoConversionUtils.sourceToTarget(serviceFunddetails, ServiceFunddetailShared.class);
                    for (int i = 0; i < serviceFunddetails.size(); i++) {
                        serviceFunddetailShareds.get(i).setFundid(serviceFundShared.getId());
                        serviceFunddetailShareds.get(i).setFdid(serviceFunddetails.get(i).getId());
                        serviceFunddetailShareds.get(i).setAmount(new BigDecimal(serviceFunddetails.get(i).getAmount()));
                        serviceFunddetailShareds.get(i).setPrepaidamount(new BigDecimal(serviceFunddetails.get(i).getPrepaidamount()));
                        serviceFunddetailShareds.get(i).setTaxamount(new BigDecimal(serviceFunddetails.get(i).getTaxamount()));
                        serviceFunddetailShareds.get(i).setTaxedamount(new BigDecimal(serviceFunddetails.get(i).getTaxedamount()));
                        serviceFunddetailShareds.get(i).setQuantity(new BigDecimal(serviceFunddetails.get(i).getQuantity()));
                        serviceFunddetailShareds.get(i).setPrice(new BigDecimal(serviceFunddetails.get(i).getPrice()));
                        serviceFunddetailShareds.get(i).setId(null);
                    }
                    funddetailSharedService.saveBatch(serviceFunddetailShareds);
                    serviceFundService.addFundSharedInfo(checkFundVO.getFundid());
//                    ServiceFundShared serviceFundShared = DtoConversionUtils.sourceToTarget(serviceFund, ServiceFundShared.class);
//                    serviceFundShared.setId(null);
//                    serviceFundShared.setSerfunid(serviceFund.getId());
//                    serviceFundShared.setAmountrequested(new BigDecimal(serviceFund.getAmountrequested()));
//                    serviceFundShared.setPrepaidamount(new BigDecimal(serviceFund.getPrepaidamount()));
//                    serviceFundShared.setTotalcost(new BigDecimal(serviceFund.getTotalcost()));
//                    serviceFundShared.setProcurementcost(new BigDecimal(serviceFund.getProcurementcost()));
//                    serviceFundShared.setExpertcost(new BigDecimal(serviceFund.getExpertcost()));
//                    serviceFundShared.setEthicscost(new BigDecimal(serviceFund.getEthicscost()));
//                    serviceFundShared.setMedicalcost(new BigDecimal(serviceFund.getMedicalcost()));
//                    serviceFundShared.setFamilycost(new BigDecimal(serviceFund.getFamilycost()));
//                    serviceFundShared.setAftercarecost(new BigDecimal(serviceFund.getAftercarecost()));
//                    fundSharedService.save(serviceFundShared);
//
//                    Map<String, Object> columnMap = new HashMap<>();
//                    columnMap.put("fundID", checkFundVO.getFundid());
//                    //获取详情数据
//                    List<ServiceFunddetail> serviceFunddetails = serviceFunddetailMapper.selectByMap(columnMap);
//                    logger.info("serviceFundController---checkFund的返回值serviceFunddetails :{}", serviceFunddetails);
//                    List<ServiceFunddetailShared> serviceFunddetailShareds = DtoConversionUtils.sourceToTarget(serviceFunddetails, ServiceFunddetailShared.class);
//                    for (int i = 0; i < serviceFunddetails.size(); i++) {
//                        serviceFunddetailShareds.get(i).setFundid(serviceFundShared.getId());
//                        serviceFunddetailShareds.get(i).setFdid(serviceFunddetails.get(i).getId());
//                        serviceFunddetailShareds.get(i).setAmount(new BigDecimal(serviceFunddetails.get(i).getAmount()));
//                        serviceFunddetailShareds.get(i).setPrepaidamount(new BigDecimal(serviceFunddetails.get(i).getPrepaidamount()));
//                        serviceFunddetailShareds.get(i).setTaxamount(new BigDecimal(serviceFunddetails.get(i).getTaxamount()));
//                        serviceFunddetailShareds.get(i).setTaxedamount(new BigDecimal(serviceFunddetails.get(i).getTaxedamount()));
//                        serviceFunddetailShareds.get(i).setQuantity(new BigDecimal(serviceFunddetails.get(i).getQuantity()));
//                        serviceFunddetailShareds.get(i).setPrice(new BigDecimal(serviceFunddetails.get(i).getPrice()));
//                        serviceFunddetailShareds.get(i).setId(null);
//                    }
//                    funddetailSharedService.saveBatch(serviceFunddetailShareds);
                }
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetail.java
@@ -239,5 +239,9 @@
    private String subjecttypename;
    /** 附件文件地址 */
    @ApiModelProperty("附件文件地址")
    private String annexfiles;
}
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceFunddetailShared.java
@@ -84,6 +84,11 @@
    @Excel(name = "收益人编号")
    private String beneficiaryno;
    /** 附件表 */
    @ApiModelProperty("附件表")
    @Excel(name = "附件表")
    private String annexfiles;
    /** 工作单位 */
    @ApiModelProperty("工作单位")
    @Excel(name = "工作单位")
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java
@@ -7,6 +7,7 @@
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.config.RuoYiConfig;
@@ -136,8 +137,7 @@
        serviceFundShared.setSerfunid(serviceFundShared.getId());
        serviceFundShared.setId(null);
        sharedService.save(serviceFundShared);
        //数据发送给财务
        uploadOAFileAndUpdateDb(serviceFundShared);
        //fundId为主表的ID
        Map<String, Object> columnMap = new HashMap<>();
        columnMap.put("fundid", id);
@@ -149,6 +149,8 @@
            //fundID为service_fund_shared表的主键ID
            serviceFunddetailShareds.get(i).setFundid(serviceFundShared.getId());
            serviceFunddetailShareds.get(i).setId(null);
            //数据发送给财务
            uploadOAFileAndUpdateDb(serviceFunddetailShareds.get(i));
        }
        boolean result = detailSharedService.saveBatch(serviceFunddetailShareds);
        return result;
@@ -733,14 +735,12 @@
        return id;
    }
    int uploadOAFileAndUpdateDb(ServiceFundShared remShare) {
    int uploadOAFileAndUpdateDb(ServiceFunddetailShared 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");
@@ -755,74 +755,136 @@
        JSONObject json1 = JSONObject.parseObject(strRes);
        strRes = json1.get("id").toString();
        ///if(strRes.isEmpty() || "" == strRes) return -1;// 为空代表失败
        //下面需求调用文件的接口,调用成功返回后,得到filename和fileid 用这二个值去更新数据
        String filePath = RuoYiConfig.getUploadPath();
        String strMutfileUrl = remShare.getAnnexbankcard();//可能存在多个地址,以,分开
        String strFUrl = "http://129.88.242.39:8899/seeyon/rest/attachment?token=" + strRes;
        //String strFUrl = "http://slb.hospitalstar.com:8899/seeyon/rest/attachment?token="+strRes;
        //strFUrl = String.format(strFUrl, strRes);
        List<RbDetailFile> parseArray2 = new ArrayList<>();
        List<RbDetailFile> parseArray = JSON.parseArray(remShare.getAnnexfiles(), RbDetailFile.class);
        for (int i = 0; i < parseArray.size(); i++) {
            RbDetailFile rbDetailFile = parseArray.get(i);
            log.info("filePath的修改:{}", filePath);
            String url = rbDetailFile.getUrl();
            //file用的是绝对位置
            String substring = url.substring(url.indexOf("/profile/upload") + "/profile/upload".length());
//            String strFile = rbDetailFile.getUrl().replace(filePath, "/profile/upload");
            File filetest = new File(filePath + substring);
        /*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);
                String struploadResult = HttpClientKit.sendPostWithFile(filetest, strFUrl);
                log.info("第三方传回的数据: {}", struploadResult);
                if (StringUtils.isEmpty(struploadResult)) {
                    log.info("HttpClientKit.sendPostWithFile 请求为空了 filetest:{},  strFUrl:{} ", filetest, strFUrl);
                    return 0;
                }
                //获取fileid
                JSONObject jsonR = JSONObject.parseObject(struploadResult);
                JSONArray jsonArr = jsonR.getJSONArray("atts");
                log.info("第三方传回的数据获取的atts : {}", jsonArr);
                for (int j = 0; j < jsonArr.size(); j++) {
                    JSONObject jsonRet = jsonArr.getJSONObject(j);
                    rbDetailFile.setFileid(jsonRet.get("fileUrl").toString());
                }
            } 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 += ",";
                }
            }
            parseArray2.add(rbDetailFile);
        }
        long nId = remShare.getId();
        remShare.setId(nId);
        remShare.setFilename(filename);
        remShare.setFileid(fileid);
        boolean bRet = sharedService.updateById(remShare);
        if (!bRet) return -1;
        remShare.setAnnexfiles(JSON.toJSONString(parseArray2));
        log.info("ServiceReimbursementdetailShared 是否加上了fileid : {}", remShare);
        return 0;
    }
//    int uploadOAFileAndUpdateDb(ServiceFundShared 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);//得到返回的token?
//
//        JSONObject json1 = JSONObject.parseObject(strRes);
//        strRes = json1.get("id").toString();
//
//        ///if(strRes.isEmpty() || "" == strRes) return -1;// 为空代表失败
//
//        //下面需求调用文件的接口,调用成功返回后,得到filename和fileid 用这二个值去更新数据
//
//        String filePath = RuoYiConfig.getUploadPath();
//        String strMutfileUrl = remShare.getAnnexbankcard();//可能存在多个地址,以,分开
//
//        String strFUrl = "http://129.88.242.39:8899/seeyon/rest/attachment?token=" + 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();
//            }
//
//
//            //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 = sharedService.updateById(remShare);
//        if (!bRet) return -1;
//
//        return 0;
//    }
}
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java
@@ -250,7 +250,6 @@
            File filetest = new File(filePath + substring);
            try {
                log.info("请求第三方的入参strFile : {}, strFUrl : {}", strFile, filePath);
                System.out.println("请求第三方的入参:" + filePath + substring);
                String struploadResult = HttpClientKit.sendPostWithFile(filetest, strFUrl);
                log.info("第三方传回的数据: {}", struploadResult);
                if (StringUtils.isEmpty(struploadResult)) {
ruoyi-project/src/main/resources/mapper/project/ServiceFunddetailMapper.xml
@@ -56,6 +56,7 @@
        <result property="itemcode" column="ItemCode"/>
        <result property="subjecttype" column="subjecttype"/>
        <result property="subjecttypename" column="subjecttypename"/>
        <result property="AnnexFiles" column="AnnexFiles"/>
    </resultMap>
    <sql id="selectServiceFunddetailVo">
@@ -109,7 +110,8 @@
               SERVICETYPE,
               SERVICETYPENAME,
               subjecttype,
               subjecttypename
               subjecttypename,
               AnnexFiles
        from service_funddetail
    </sql>