From 52c9918659294b9fb4fff10063c936659c2b2651 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期五, 30 六月 2023 13:52:05 +0800 Subject: [PATCH] 获取附件路径 --- ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java | 255 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 226 insertions(+), 29 deletions(-) diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java index 6a5da46..24e7c38 100644 --- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java +++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java @@ -1,33 +1,43 @@ package com.ruoyi.project.service.impl; +import java.io.File; +import java.util.HashMap; import java.util.List; -import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.project.domain.ServiceReimbursementdetail; -import com.ruoyi.project.domain.ServiceRelativesconfirmation; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.utils.HttpClientKit; +import com.ruoyi.common.utils.bean.DtoConversionUtils; +import com.ruoyi.project.domain.*; import com.ruoyi.project.domain.dto.ServiceReimbursementDto; import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut; -import com.ruoyi.project.mapper.ServiceReimbursementdetailMapper; +import com.ruoyi.project.mapper.*; +import com.ruoyi.project.service.IServiceReimbursementSharedService; +import com.ruoyi.project.service.IServiceReimbursementdetailSharedService; +import com.ruoyi.project.service.IServiceReimbursementpayeeSharedService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import java.util.ArrayList; + import java.util.Map; + import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.project.mapper.ServiceReimbursementMapper; -import com.ruoyi.project.domain.ServiceReimbursement; import com.ruoyi.project.service.IServiceReimbursementService; +import org.springframework.transaction.annotation.Transactional; /** * 鎶ラ攢鐢宠Service涓氬姟灞傚鐞� - * + * * @author ruoyi * @date 2022-01-24 */ +@Slf4j @Service -public class ServiceReimbursementServiceImpl extends ServiceImpl<ServiceReimbursementMapper, ServiceReimbursement> implements IServiceReimbursementService -{ +public class ServiceReimbursementServiceImpl extends ServiceImpl<ServiceReimbursementMapper, ServiceReimbursement> implements IServiceReimbursementService { @Autowired ServiceReimbursementMapper serviceReimbursementMapper; @@ -35,38 +45,56 @@ @Autowired ServiceReimbursementdetailMapper serviceReimbursementdetailMapper; + @Autowired + ServiceReimbursementdetailSharedMapper serviceReimbursementdetailSharedMapper; + + @Autowired + ServiceReimbursementpayeeMapper reimbursementpayeeMapper; + + @Autowired + ServiceReimbursementpayeeSharedMapper reimbursementpayeeSharedMapper; + + @Autowired + IServiceReimbursementdetailSharedService detailSharedService; + + @Autowired + IServiceReimbursementSharedService sharedService; + + @Autowired + IServiceReimbursementpayeeSharedService payeeSharedService; + /** * 鏌ヨ鎶ラ攢鐢宠鍒楄〃 - * + * * @param serviceReimbursement 鎶ラ攢鐢宠 * @return 鎶ラ攢鐢宠 */ @Override public List<ServiceReimbursement> queryList(ServiceReimbursement serviceReimbursement) { LambdaQueryWrapper<ServiceReimbursement> wrappers = Wrappers.lambdaQuery(); - if (StringUtils.isNotBlank(serviceReimbursement.getCreateBy())){ - wrappers.eq(ServiceReimbursement::getCreateBy ,serviceReimbursement.getCreateBy()); + if (StringUtils.isNotBlank(serviceReimbursement.getCreateBy())) { + wrappers.eq(ServiceReimbursement::getCreateBy, serviceReimbursement.getCreateBy()); } - if (serviceReimbursement.getCreateTime() != null){ - wrappers.eq(ServiceReimbursement::getCreateTime ,serviceReimbursement.getCreateTime()); + if (serviceReimbursement.getCreateTime() != null) { + wrappers.eq(ServiceReimbursement::getCreateTime, serviceReimbursement.getCreateTime()); } - if (StringUtils.isNotBlank(serviceReimbursement.getUsername())){ - wrappers.like(ServiceReimbursement::getUsername ,serviceReimbursement.getUsername()); + if (StringUtils.isNotBlank(serviceReimbursement.getUsername())) { + wrappers.like(ServiceReimbursement::getUsername, serviceReimbursement.getUsername()); } - if (StringUtils.isNotBlank(serviceReimbursement.getTravelers())){ - wrappers.like(ServiceReimbursement::getTravelers ,serviceReimbursement.getTravelers()); + if (StringUtils.isNotBlank(serviceReimbursement.getTravelers())) { + wrappers.like(ServiceReimbursement::getTravelers, serviceReimbursement.getTravelers()); } - if (StringUtils.isNotBlank(serviceReimbursement.getDeptmentname())){ - wrappers.like(ServiceReimbursement::getDeptmentname ,serviceReimbursement.getDeptmentname()); + if (StringUtils.isNotBlank(serviceReimbursement.getDeptmentname())) { + wrappers.like(ServiceReimbursement::getDeptmentname, serviceReimbursement.getDeptmentname()); } - if (StringUtils.isNotBlank(serviceReimbursement.getDonorno())){ - wrappers.eq(ServiceReimbursement::getDonorno ,serviceReimbursement.getDonorno()); + if (StringUtils.isNotBlank(serviceReimbursement.getDonorno())) { + wrappers.eq(ServiceReimbursement::getDonorno, serviceReimbursement.getDonorno()); } - if (serviceReimbursement.getRecordstatus()!=null){ - wrappers.eq(ServiceReimbursement::getRecordstatus ,serviceReimbursement.getRecordstatus()); + if (serviceReimbursement.getRecordstatus() != null) { + wrappers.eq(ServiceReimbursement::getRecordstatus, serviceReimbursement.getRecordstatus()); } - if (StringUtils.isNotBlank(serviceReimbursement.getUploadflag())){ - wrappers.eq(ServiceReimbursement::getUploadflag ,serviceReimbursement.getUploadflag()); + if (StringUtils.isNotBlank(serviceReimbursement.getUploadflag())) { + wrappers.eq(ServiceReimbursement::getUploadflag, serviceReimbursement.getUploadflag()); } /* if (serviceReimbursement.getStarttime()!=null && serviceReimbursement.getEndtime()!=null){ @@ -87,13 +115,52 @@ } @Override + @Transactional + public Boolean addSharedData(Long id) { + ServiceReimbursement serviceReimbursement = serviceReimbursementMapper.selectById(id); + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("rbid", id); + //鑾峰彇璇︽儏鏁版嵁 + List<ServiceReimbursementdetail> details = serviceReimbursementdetailMapper.selectByMap(columnMap); + //鑾峰彇鏀粯鏁版嵁 + List<ServiceReimbursementpayee> serviceReimbursementpayees = reimbursementpayeeMapper.selectByMap(columnMap); + //鏁版嵁缁勮 + ServiceReimbursementShared serviceReimbursementShared = DtoConversionUtils.sourceToTarget(serviceReimbursement, ServiceReimbursementShared.class); + serviceReimbursementShared.setReimid(id); + serviceReimbursementShared.setId(null); + List<ServiceReimbursementdetailShared> serviceReimbursementdetailShareds = DtoConversionUtils.sourceToTarget(details, ServiceReimbursementdetailShared.class); + List<ServiceReimbursementpayeeShared> serviceReimbursementpayeeShareds = DtoConversionUtils.sourceToTarget(serviceReimbursementpayees, ServiceReimbursementpayeeShared.class); + //灏嗙粍瑁呭ソ鐨勬暟鎹彃鍏ュ埌鍒嗕韩琛ㄤ腑 + sharedService.save(serviceReimbursementShared); + //涓婁紶OA鏂囦欢 + uploadOAFileAndUpdateDb(serviceReimbursementShared); + //灏唖erviceReimbursementdetail琛ㄩ噷鐨刬d璧嬪�肩粰Rdid; 灏唖erviceReimbursementShared閲岀殑ID璧嬪�肩粰RBID,骞跺皢serviceReimbursementdetailShared琛ㄩ噷鐨刬d缃┖锛岀敱鏁版嵁搴撻噸鏂扮敓鎴� + for (int i = 0; i < details.size(); i++) { + serviceReimbursementdetailShareds.get(i).setRdid(serviceReimbursementdetailShareds.get(i).getId()); + serviceReimbursementdetailShareds.get(i).setRbid(serviceReimbursementShared.getId()); + serviceReimbursementdetailShareds.get(i).setId(null); + } + detailSharedService.saveBatch(serviceReimbursementdetailShareds); + + //灏唖erviceReimbursementpayee琛ㄩ噷鐨刬d璧嬪�肩粰Rpid; 灏唖erviceReimbursementShared閲岀殑ID璧嬪�肩粰RBID,骞跺皢serviceReimbursementpayeeShared琛ㄩ噷鐨刬d缃┖锛岀敱鏁版嵁搴撻噸鏂扮敓鎴� + for (int i = 0; i < serviceReimbursementpayees.size(); i++) { + serviceReimbursementpayeeShareds.get(i).setRpid(Long.valueOf(serviceReimbursementpayees.get(i).getId())); + serviceReimbursementpayeeShareds.get(i).setRbid(serviceReimbursementShared.getId()); + serviceReimbursementpayeeShareds.get(i).setId(null); + } + payeeSharedService.saveBatch(serviceReimbursementpayeeShareds); + + return true; + } + + @Override public List<ServiceReimbursement> selectSearchList(ServiceReimbursementDto serviceReimbursementdto) { return serviceReimbursementMapper.selectSearchList(serviceReimbursementdto); } @Override - public List<SpFinancialExpensesReimbursementOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT,Integer CHECKFLAG,Integer APPLYTYPE) { - return serviceReimbursementMapper.getListBypower(PAUSERNO, PAFUNDTYPE, PAAPPLICANT, PAAPPLICATIONBEGTIME, PAAPPLICATIONENDTIME, PADEPARTMENT,CHECKFLAG,APPLYTYPE); + public List<SpFinancialExpensesReimbursementOut> getListBypower(String PAUSERNO, Integer PAFUNDTYPE, String PAAPPLICANT, String PAAPPLICATIONBEGTIME, String PAAPPLICATIONENDTIME, String PADEPARTMENT, Integer CHECKFLAG, Integer APPLYTYPE) { + return serviceReimbursementMapper.getListBypower(PAUSERNO, PAFUNDTYPE, PAAPPLICANT, PAAPPLICATIONBEGTIME, PAAPPLICATIONENDTIME, PADEPARTMENT, CHECKFLAG, APPLYTYPE); } @Override @@ -106,4 +173,134 @@ return serviceReimbursementMapper.getInfoByInfoIdRelatives(infoid); } + @Override + public List<ServiceReimbursementEo> getRDInfoByItem(ServiceReimbursementEo serviceReimbursementEo) { + return serviceReimbursementMapper.getRDInfoByItem(serviceReimbursementEo); + } + + + 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 strMutfileUrl = remShare.getAnnexfiles(); + 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(); + } + + + /*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); + log.info("remShare鐨勬暟鎹负 : {}:", remShare.toString()); + boolean bRet = sharedService.updateById(remShare); + if (!bRet) return -1; + + return 0; + } + + } -- Gitblit v1.9.3