| | |
| | | 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.apache.commons.lang3.ObjectUtils; |
| | | 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; |
| | |
| | | @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 (ObjectUtils.isNotEmpty(serviceReimbursement.getId())) { |
| | | wrappers.eq(ServiceReimbursement::getId, serviceReimbursement.getId()); |
| | | } |
| | | if (serviceReimbursement.getCreateTime() != null){ |
| | | wrappers.eq(ServiceReimbursement::getCreateTime ,serviceReimbursement.getCreateTime()); |
| | | if (StringUtils.isNotBlank(serviceReimbursement.getCreateBy())) { |
| | | wrappers.eq(ServiceReimbursement::getCreateBy, serviceReimbursement.getCreateBy()); |
| | | } |
| | | if (StringUtils.isNotBlank(serviceReimbursement.getUsername())){ |
| | | wrappers.like(ServiceReimbursement::getUsername ,serviceReimbursement.getUsername()); |
| | | if (serviceReimbursement.getCreateTime() != null) { |
| | | wrappers.eq(ServiceReimbursement::getCreateTime, serviceReimbursement.getCreateTime()); |
| | | } |
| | | if (StringUtils.isNotBlank(serviceReimbursement.getTravelers())){ |
| | | wrappers.like(ServiceReimbursement::getTravelers ,serviceReimbursement.getTravelers()); |
| | | if (StringUtils.isNotBlank(serviceReimbursement.getUsername())) { |
| | | wrappers.like(ServiceReimbursement::getUsername, serviceReimbursement.getUsername()); |
| | | } |
| | | if (StringUtils.isNotBlank(serviceReimbursement.getDeptmentname())){ |
| | | wrappers.like(ServiceReimbursement::getDeptmentname ,serviceReimbursement.getDeptmentname()); |
| | | if (StringUtils.isNotBlank(serviceReimbursement.getTravelers())) { |
| | | wrappers.like(ServiceReimbursement::getTravelers, serviceReimbursement.getTravelers()); |
| | | } |
| | | if (StringUtils.isNotBlank(serviceReimbursement.getDonorno())){ |
| | | wrappers.eq(ServiceReimbursement::getDonorno ,serviceReimbursement.getDonorno()); |
| | | if (StringUtils.isNotBlank(serviceReimbursement.getDeptmentname())) { |
| | | wrappers.like(ServiceReimbursement::getDeptmentname, serviceReimbursement.getDeptmentname()); |
| | | } |
| | | if (serviceReimbursement.getRecordstatus()!=null){ |
| | | wrappers.eq(ServiceReimbursement::getRecordstatus ,serviceReimbursement.getRecordstatus()); |
| | | if (StringUtils.isNotBlank(serviceReimbursement.getDonorno())) { |
| | | wrappers.eq(ServiceReimbursement::getDonorno, serviceReimbursement.getDonorno()); |
| | | } |
| | | if (StringUtils.isNotBlank(serviceReimbursement.getUploadflag())){ |
| | | wrappers.eq(ServiceReimbursement::getUploadflag ,serviceReimbursement.getUploadflag()); |
| | | if (serviceReimbursement.getRecordstatus() != null) { |
| | | wrappers.eq(ServiceReimbursement::getRecordstatus, serviceReimbursement.getRecordstatus()); |
| | | } |
| | | if (StringUtils.isNotBlank(serviceReimbursement.getUploadflag())) { |
| | | wrappers.eq(ServiceReimbursement::getUploadflag, serviceReimbursement.getUploadflag()); |
| | | } |
| | | |
| | | /* if (serviceReimbursement.getStarttime()!=null && serviceReimbursement.getEndtime()!=null){ |
| | |
| | | } |
| | | |
| | | @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); |
| | | //将serviceReimbursementdetail表里的id赋值给Rdid; 将serviceReimbursementShared里的ID赋值给RBID,并将serviceReimbursementdetailShared表里的id置空,由数据库重新生成 |
| | | 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); |
| | | |
| | | //将serviceReimbursementpayee表里的id赋值给Rpid; 将serviceReimbursementShared里的ID赋值给RBID,并将serviceReimbursementpayeeShared表里的id置空,由数据库重新生成 |
| | | 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 |
| | |
| | | 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);//得到返回的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.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 { |
| | | //设置请求参数(类似html页面中name属性) |
| | | 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; |
| | | } |
| | | |
| | | |
| | | } |