From b1ffaa0bfbe610b16b64966965fe13b7e2a57d93 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 04 十一月 2025 19:06:30 +0800
Subject: [PATCH] 处理年龄问题
---
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceReimbursementServiceImpl.java | 987 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 946 insertions(+), 41 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 f96033b..1cc2a8b 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,34 +1,57 @@
package com.ruoyi.project.service.impl;
-import java.util.List;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.project.domain.ServiceReimbursementEo;
-import com.ruoyi.project.domain.ServiceReimbursementdetail;
-import com.ruoyi.project.domain.ServiceRelativesconfirmation;
-import com.ruoyi.project.domain.dto.ServiceReimbursementDto;
-import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut;
-import com.ruoyi.project.mapper.ServiceReimbursementdetailMapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
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.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import com.ruoyi.common.config.RuoYiConfig;
+import com.ruoyi.common.constant.HttpStatus;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.utils.HttpClientKit;
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 com.ruoyi.common.utils.bean.DtoConversionUtils;
+import com.ruoyi.common.utils.uuid.IdUtils;
+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.DingTalkReqVo;
+import com.ruoyi.project.domain.vo.SpFinancialExpensesReimbursementOut;
+import com.ruoyi.project.mapper.*;
+import com.ruoyi.project.service.*;
+import com.ruoyi.system.mapper.SysUserRoleMapper;
+import com.ruoyi.system.service.ISysPostService;
+import com.ruoyi.system.service.ISysUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.File;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicLong;
/**
* 鎶ラ攢鐢宠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;
@@ -36,38 +59,99 @@
@Autowired
ServiceReimbursementdetailMapper serviceReimbursementdetailMapper;
+ @Autowired
+ ServiceReimbursementdetailSharedMapper serviceReimbursementdetailSharedMapper;
+
+ @Autowired
+ ServiceReimbursementpayeeMapper reimbursementpayeeMapper;
+
+ @Autowired
+ ServiceReimbursementpayeeSharedMapper reimbursementpayeeSharedMapper;
+
+ @Autowired
+ IServiceReimbursementdetailSharedService detailSharedService;
+
+ @Autowired
+ IServiceReimbursementSharedService sharedService;
+
+ @Autowired
+ IServiceReimbursementpayeeSharedService payeeSharedService;
+
+ @Autowired
+ IServiceFundflowruleService serviceFundflowruleService;
+
+ @Autowired
+ IServiceFundflowService serviceFundflowService;
+
+ @Autowired
+ ISysUserService sysUserService;
+
+ @Autowired
+ private DingTalkService dingTalkService;
+
+ @Autowired
+ private ISysPostService postService;
+
+ @Autowired
+ private SysUserRoleMapper sysUserRoleMapper;
+
+ @Autowired
+ private IServiceSystemmessageService serviceSystemmessageService;
+
+ @Value("${xyurl}")
+ private String xyurl;
+
+ @Value("${rexyurl}")
+ private String rexyurl;
+
+ @Value("${newSwitch}")
+ private Integer newSwitch;
+
+ @Value("${spring.profiles.active}")
+ private String active;
+
+
/**
* 鏌ヨ鎶ラ攢鐢宠鍒楄〃
- *
+ *
* @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 (serviceReimbursement.getUploadStates() != null) {
+ wrappers.eq(ServiceReimbursement::getUploadStates, serviceReimbursement.getUploadStates());
+ }
+ if (StringUtils.isNotBlank(serviceReimbursement.getUploadflag())) {
+ wrappers.eq(ServiceReimbursement::getUploadflag, serviceReimbursement.getUploadflag());
+ }
+ if (serviceReimbursement.getFlowlevel() != null) {
+ wrappers.eq(ServiceReimbursement::getFlowlevel, serviceReimbursement.getFlowlevel());
}
/* if (serviceReimbursement.getStarttime()!=null && serviceReimbursement.getEndtime()!=null){
@@ -83,8 +167,117 @@
}
@Override
- public List<ServiceReimbursementdetail> getRBDetailList(Long id) {
- return serviceReimbursementdetailMapper.getRBDetailList(id);
+ public List<ServiceReimbursementdetailVO> getRBDetailList(Long id) {
+ log.info("getRBDetailList鐨勫叆鍙�:{}", id);
+ List<ServiceReimbursementdetailVO> serviceReimbursementdetailVOS = new ArrayList<>();
+ List<ServiceReimbursementdetail> rbDetailList = serviceReimbursementdetailMapper.getRBDetailList(id);
+ log.info("getRBDetailList鐨勫叆鍙�:{}", CollectionUtils.isEmpty(rbDetailList) ? null : rbDetailList.size());
+ for (int j = 0; j < rbDetailList.size(); j++) {
+ ServiceReimbursementdetail serviceReimbursementdetail = rbDetailList.get(j);
+ String annexfiles = serviceReimbursementdetail.getAnnexfiles();
+ String invoicefiles = serviceReimbursementdetail.getInvoicefiles();
+ ServiceReimbursementdetailVO serviceReimbursementdetailVO = DtoConversionUtils.sourceToTarget(serviceReimbursementdetail, ServiceReimbursementdetailVO.class);
+ if (StringUtils.isNotBlank(annexfiles)) {
+ try {
+ serviceReimbursementdetailVO.setAnnexfilesList(JSON.parseArray(annexfiles));
+ } catch (Exception e) {
+ if (e.getMessage().equals("invalid comment")) {
+ log.error("鎶ュ紓甯镐簡锛岃�佸ぇ涓嶈鎴戝鐞�");
+ }
+ }
+ }
+ if (StringUtils.isNotBlank(invoicefiles)) {
+ try {
+ serviceReimbursementdetailVO.setInvoicefilesList(JSON.parseArray(invoicefiles));
+ } catch (Exception e) {
+ if (e.getMessage().equals("invalid comment")) {
+ }
+ }
+ }
+ serviceReimbursementdetailVOS.add(serviceReimbursementdetailVO);
+ }
+ return serviceReimbursementdetailVOS;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean addSharedData(Long id) {
+ log.info("addSharedData鏂规硶鐨勫叆鍙俰d :{}", id);
+ //鍏堝垽鏂竴涓媠hare琛ㄦ槸鍚﹀凡缁忔彃鍏�
+ ServiceReimbursementShared reimbursementShared1 = new ServiceReimbursementShared();
+ reimbursementShared1.setReimid(id);
+ reimbursementShared1.setDelFlag(0L);
+ List<ServiceReimbursementShared> serviceReimbursementShareds = sharedService.queryList(reimbursementShared1);
+ log.info("serviceReimbursementShareds鐨勬煡璇㈢粨鏋� :{}", serviceReimbursementShareds.size());
+ if (!CollectionUtils.isEmpty(serviceReimbursementShareds)) {
+ return true;
+ }
+
+ //濡傛灉娌℃湁鎻掑叆锛屽垯璧颁笅闈㈢殑娴佺▼
+ ServiceReimbursement serviceReimbursement = serviceReimbursementMapper.selectById(id);
+ Map<String, Object> columnMap = new HashMap<>();
+ columnMap.put("rbid", id);
+ //鑾峰彇璇︽儏鏁版嵁
+ List<ServiceReimbursementdetail> details = serviceReimbursementdetailMapper.selectByMap(columnMap);
+ log.info("serviceReimbursementdetailMapper.selectByMap鏂规硶鐨勮繑鍙傚弬 :{}", CollectionUtils.isEmpty(details) ? null : details.size());
+ //鑾峰彇鏀粯鏁版嵁
+ List<ServiceReimbursementpayee> serviceReimbursementpayees = reimbursementpayeeMapper.selectByMap(columnMap);
+ log.info("reimbursementpayeeMapper.selectByMap鏂规硶鐨勮繑鍙傚弬 :{}", CollectionUtils.isEmpty(serviceReimbursementpayees) ? null : serviceReimbursementpayees.size());
+ //鏁版嵁缁勮
+ 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鏂囦欢
+ //灏唖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);
+ //涓婁紶OA鏂囦欢
+ log.info("涓婁紶OA鏂囦欢鏂规硶鐨勫叆鍙�:{}", serviceReimbursementdetailShareds.get(i));
+ try {
+ //濡傛灉鏄湰鍦扮幆澧冿紝灏变笉璋冭繖涓簡
+ if (!active.equals("druid")) uploadOAFileAndUpdateDb(serviceReimbursementdetailShareds.get(i));
+ } catch (Exception e) {
+ log.error("Exception涓璻eimShare鐨勫叆鍙俰d涓猴細{}", serviceReimbursementShared.getId());
+ if (serviceReimbursementShared.getId() != null) {
+ Boolean aBoolean = sharedService.delResharedInfoById(serviceReimbursementShared.getId());
+ log.error("鏂囦欢涓婁紶澶辫触锛屽皢鍒嗕韩琛ㄦ暟鎹洖婊氾細{}", aBoolean);
+ }
+ e.getMessage();
+ return false;
+ }
+
+ }
+
+// detailSharedService.saveBatch(serviceReimbursementdetailShareds);
+ for (ServiceReimbursementdetailShared serviceReimbursementdetailShared : serviceReimbursementdetailShareds) {
+ if (ObjectUtils.isNotEmpty(serviceReimbursementdetailShared)) {
+ detailSharedService.save(serviceReimbursementdetailShared);
+ } else {
+ log.info("serviceReimbursementdetailShared涓虹┖浜�");
+ }
+ }
+
+ //灏唖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);
+ }
+
+ for (ServiceReimbursementpayeeShared serviceReimbursementpayeeShared : serviceReimbursementpayeeShareds) {
+ if (ObjectUtils.isNotEmpty(serviceReimbursementpayeeShared)) {
+ payeeSharedService.save(serviceReimbursementpayeeShared);
+ } else {
+ log.info("serviceReimbursementpayeeShared涓虹┖浜嗭紒");
+ }
+ }
+ return true;
}
@Override
@@ -93,8 +286,8 @@
}
@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, Integer CHECKSTATUS, String donorname) {
+ return serviceReimbursementMapper.getListBypower(PAUSERNO, PAFUNDTYPE, PAAPPLICANT, PAAPPLICATIONBEGTIME, PAAPPLICATIONENDTIME, PADEPARTMENT, CHECKFLAG, APPLYTYPE, CHECKSTATUS, donorname);
}
@Override
@@ -108,9 +301,721 @@
}
@Override
- public List<ServiceReimbursementEo> getRDInfoByItem(ServiceReimbursementEo serviceReimbursementEo){
- return serviceReimbursementMapper.getRDInfoByItem(serviceReimbursementEo);
+ public List<ServiceReimbursementEo> getRDInfoByItem(ServiceReimbursementEo serviceReimbursementEo) {
+ return serviceReimbursementMapper.getRDInfoByItem(serviceReimbursementEo);
}
+ @Override
+ public Map<String, String> checkFund(LoginUser loginUser, CheckFundVO checkFundVO) {
+ Map<String, String> allMap = new HashMap<>();
+
+ ServiceReimbursement serviceReimbursement = getById(checkFundVO.getFundid());
+ log.info("瀹℃牳璐圭敤鐨剆erviceReimbursementService.getById杩斿弬 : {}", serviceReimbursement);
+ if (serviceReimbursement != null) {
+ Integer totalLevel = 0;
+ ServiceFundflowrule serviceFundflowrule = new ServiceFundflowrule();
+ serviceFundflowrule.setFundtype(1);
+ serviceFundflowrule.setApplytype("0");
+ serviceFundflowrule.setCheckuserno(loginUser.getUsername());
+ List<ServiceFundflowrule> serviceFundflowrules = serviceFundflowruleService.queryList(serviceFundflowrule);
+ log.info("瀹℃牳璐圭敤鐨剆erviceFundflowruleService.queryList杩斿弬 : {}", serviceFundflowrules.size());
+ if (serviceFundflowrules == null || serviceFundflowrules.stream().count() == 0) {
+ allMap.put(HttpStatus.ERROR + "", "褰撳墠浜哄憳鏃犳璁板綍瀹℃牳鏉冮檺");
+ return allMap;
+ }
+
+ if (serviceFundflowrules.get(0).getFlowlevel() - 1 != serviceReimbursement.getFlowlevel()) {
+ allMap.put(HttpStatus.ERROR + "", "褰撳墠浜哄憳涓庢璁板綍鐨勫鏍哥骇鍒笉绗�");
+ return allMap;
+ }
+
+ if (serviceFundflowrules != null && serviceFundflowrules.stream().count() > 0) {
+ totalLevel = serviceFundflowrules.get(0).getTotallevel();
+
+ }
+ Integer CheckFlag = 0;
+ Integer RecordStatus = serviceReimbursement.getRecordstatus();
+ Integer FlowLevel = Integer.valueOf(serviceReimbursement.getFlowlevel().toString());
+ if (Objects.isNull(serviceReimbursement.getBackflowlevel()) && !Objects.isNull(serviceReimbursement.getFlowlevel())) {
+ serviceReimbursement.setBackflowlevel(Long.valueOf(FlowLevel.toString()));
+ }
+ Integer OriginalFlowLevel = FlowLevel;
+ if (checkFundVO.getFlowconclusion() == 1) {
+ CheckFlag = 1;
+ if (totalLevel == 0) {
+ //99 鍙栨秷
+ RecordStatus = 99;
+ } else {
+
+ if (totalLevel == FlowLevel + 1) {
+ RecordStatus = 99;
+ } else {
+ RecordStatus = (FlowLevel + 1) * 2;
+ }
+ }
+
+ SysUser user = loginUser.getUser();
+ if (serviceReimbursement.getFlowlevel() == 1 && serviceReimbursement.getBackflowlevel() == 100) {
+ log.info("鍑哄樊琛ヨ创琚� 璐㈠姟閫�鍥炲啀鎻愪氦锛屽嚭绾冲啀娆″鎵癸紝涔嬪悗鎻愪氦鍒拌储鍔�:{}", serviceReimbursement.getId());
+ //璇存槑鏄储鍔¢��鍥炲啀鎻愪氦鐨�.闇�瑕佸嚭绾冲啀鐪嬩竴閬嶏紝娌¢棶棰樹箣鍚庯紝寰�鍒嗕韩琛ㄩ噷鏂板
+// serviceReimbursementService.addSharedData(serviceReimbursement.getId());
+// serviceReimbursement.setFinancechecher("瀹℃壒浜猴細" + user.getNickName() + " & 瀹℃壒鏃堕棿" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + " & 瀹℃壒缁撴灉锛氶�氳繃");
+ serviceReimbursement.setFinancechecher(user.getNickName());
+ serviceReimbursement.setFlowlevel(serviceFundflowrules.get(0).getTotallevel().longValue());
+ serviceReimbursement.setRecordstatus(99);
+ serviceReimbursement.setUploadStates(1);
+ boolean b = updateById(serviceReimbursement);
+ log.info("鏄惁淇敼鎴愬姛:{}", b);
+ Boolean aBoolean1 = null;
+ if (newSwitch == 1) {
+ aBoolean1 = sendData(serviceReimbursement);
+ if (!aBoolean1) {
+ allMap.put("500", "鍙戦�佸け璐�");
+ return allMap;
+ }
+ }
+ //淇濆瓨瀹℃壒娴佺▼琛�
+ ServiceFundflow serviceFundflow = new ServiceFundflow();
+ serviceFundflow.setFundid(serviceReimbursement.getId());
+ serviceFundflow.setCheckuserno(user.getUserName());
+ serviceFundflow.setCheckusername(user.getNickName());
+ serviceFundflow.setFundtype(1);
+ serviceFundflow.setCheckTime(new Date());
+ serviceFundflow.setApplytype("0");
+ serviceFundflow.setFlowconclusion(CheckFlag);
+ serviceFundflow.setFlowcontent("閫氳繃");
+ serviceFundflow.setFlowlevel(OriginalFlowLevel + 1);
+ Boolean aBoolean = serviceFundflowService.save(serviceFundflow);
+ allMap.put("200", "success");
+ return allMap;
+ }
+
+ FlowLevel = FlowLevel + 1;
+ serviceReimbursement.setBackflowlevel(Long.valueOf(FlowLevel));
+ //濡傛灉褰撳墠鐧婚檰鏄储鍔★紝鍒�
+ List<Integer> roleIds = sysUserRoleMapper.getUserRoleByUserId(user.getUserId());
+ if (roleIds != null && roleIds.contains(11)) {
+ //11涓鸿储鍔�
+// serviceReimbursement.setFinancechecher("瀹℃壒浜猴細" + user.getNickName() + " & 瀹℃壒鏃堕棿" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + " & 瀹℃壒缁撴灉锛氶�氳繃");
+ serviceReimbursement.setFinancechecher(user.getNickName());
+ }
+
+ } else {
+ CheckFlag = 2;
+
+ if (CheckFlag == 2) {
+ //搴斿尰闄㈣姹傚鏋滃嚭鐜伴��鍥烇紝鐩存帴閫�鍒板彂璧疯��
+ FlowLevel = 0;
+ RecordStatus = -1;
+ } else {
+ //涓嬮潰鏄師鏉ョ殑鍐欐硶锛屼竴绾т竴绾х殑寰�涓嬮��锛屽尰闄㈢幇鍦ㄤ笉瑕佽繖鏍锋悶浜嗭紝涓嬮潰杩欐浠g爜鍏堜繚鐣欙紝绛夊尰闄㈠洖蹇冭浆鎰忥紝鍐嶇粰鏀惧紑
+ RecordStatus = (FlowLevel + 1) * 2 - 1;
+ FlowLevel = (FlowLevel - 1);
+ if (FlowLevel < 0) {
+ FlowLevel = 0;
+ }
+ }
+ SysUser sysUser = sysUserService.selectUserByUserName(serviceReimbursement.getUserno());
+ ArrayList<ConcurrentHashMap<String, Object>> contentList = new ArrayList<>();
+ ConcurrentHashMap map = new ConcurrentHashMap();
+ map.put("瀹℃壒浜猴細", loginUser.getUser().getUserName());
+ map.put("瀹℃壒鏃堕棿锛�", new Date());
+ map.put("鎰忚锛�", "涓嶉�氳繃");
+ if (StringUtils.isNotBlank(checkFundVO.getFlowcontent())) map.put("鎰忚锛�", checkFundVO.getFlowcontent());
+ contentList.add(map);
+ DingTalkReqVo dingTalkReqVo = new DingTalkReqVo();
+ dingTalkReqVo.setTitle("璐㈠姟绯荤粺椹冲洖淇℃伅");
+ dingTalkReqVo.setNumber(sysUser.getPhonenumber());
+ dingTalkReqVo.setContents(contentList);
+ dingTalkService.sendNotification(dingTalkReqVo);
+ }
+
+ serviceReimbursement.setRecordstatus(RecordStatus);
+ serviceReimbursement.setFlowlevel(Long.valueOf(FlowLevel.toString()));
+ ServiceFundflow serviceFundflow = new ServiceFundflow();
+ SysUser user = loginUser.getUser();
+ serviceFundflow.setFundid(serviceReimbursement.getId());
+ serviceFundflow.setCheckuserno(user.getUserName());
+ serviceFundflow.setCheckusername(user.getNickName());
+ serviceFundflow.setCheckTime(new Date());
+ serviceFundflow.setFundtype(1);
+ serviceFundflow.setApplytype("0");
+ serviceFundflow.setFlowconclusion(CheckFlag);
+ 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) && !postids.contains(6) && (serviceReimbursement.getBackflowlevel() == null || serviceReimbursement.getBackflowlevel() == 0)) {
+ if (CheckFlag == 2 && OriginalFlowLevel == 1) {
+ ServiceFundflow serviceFundflowAuto = new ServiceFundflow();
+ serviceFundflowAuto.setFundid(serviceReimbursement.getId());
+ serviceFundflowAuto.setCheckuserno(user.getUserName());
+ serviceFundflowAuto.setCheckusername(user.getNickName());
+ serviceFundflowAuto.setFundtype(1);
+ serviceFundflowAuto.setApplytype("0");
+ serviceFundflowAuto.setFlowconclusion(CheckFlag);
+ serviceFundflowAuto.setFlowcontent("闈炰笓鑱屼汉鍛樹簩绾у鏍告嫆缁濆悗鐩存帴閫�鍥炲埌淇敼鐘舵��");
+ serviceFundflowAuto.setFlowlevel(1);
+ serviceFundflowService.save(serviceFundflowAuto);
+ serviceReimbursement.setRecordstatus(1);
+ }
+
+ }
+ //053瀹℃壒閫氳繃涔嬪悗锛屽氨闇�瑕佹妸鈥滃姙鍏涓讳换鈥濈殑鍚嶅瓧濉笂
+ if (checkFundVO.getFlowconclusion() == 1 && user.getUserName().equals("053")) {
+ serviceReimbursement.setOfficedirector(user.getNickName());
+ serviceReimbursement.setUploadStates(1);
+
+ Boolean aBoolean1 = null;
+ if (newSwitch == 1) {
+ aBoolean1 = sendData(serviceReimbursement);
+ if (!aBoolean1) {
+ allMap.put("500", "鍙戦�佸け璐�");
+ return allMap;
+ }
+ }
+ }
+// if (StringUtils.isNotEmpty(serviceReimbursement.getManagername()) && serviceReimbursement.getManagername().equals(loginUser.getUser().getNickName())) {
+// serviceReimbursement.setManagername("瀹℃壒浜猴細" + serviceReimbursement.getManagername() + " & 瀹℃壒鏃堕棿" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + " & 瀹℃壒缁撴灉锛氶�氳繃");
+// }
+ updateById(serviceReimbursement);
+
+ ServiceSystemmessage serviceSystemmessage = new ServiceSystemmessage();
+ serviceSystemmessage.setFundtype(1);
+ serviceSystemmessage.setApplytype("0");
+ serviceSystemmessage.setSenduserno(user.getUserName());
+ serviceSystemmessage.setSendusername(user.getNickName());
+ serviceSystemmessage.setReceiveuserno(serviceReimbursement.getUserno());
+ serviceSystemmessage.setReceiveusername(serviceReimbursement.getUsername());
+ serviceSystemmessage.setIsread(0);
+ serviceSystemmessage.setMessagetype(1);
+ serviceSystemmessage.setUpdateTime(new Date());
+ serviceSystemmessage.setUpdateBy(user.getNickName());
+ serviceSystemmessage.setRelevantno(serviceReimbursement.getId());
+ log.info("CheckFlag鐨勫�� : {}", CheckFlag);
+ if (CheckFlag == 1) {
+ //閫氳繃
+ serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "绾у鏍搁�氳繃");
+ serviceSystemmessage.setMessagecontent("鎮�" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime()) + "鎻愪氦鐨勫樊鏃呮姤閿�鍗曠敵璇峰凡閫氳繃");
+ log.info("totalLevel鐨勫�� : {}, OriginalFlowLevel鐨勫��:{}", totalLevel, OriginalFlowLevel);
+
+ } else {
+ //椹冲洖
+ serviceSystemmessage.setMessagetitle("" + (OriginalFlowLevel + 1) + "绾у鏍搁┏鍥�");
+ serviceSystemmessage.setMessagecontent("鎮�" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(serviceReimbursement.getCreateTime()) + "鎻愪氦鐨勫樊鏃呮姤閿�鍗曠敵璇疯椹冲洖锛屽師鍥�:" + checkFundVO.getFlowcontent() + "");
+ }
+ serviceSystemmessageService.save(serviceSystemmessage);
+
+ allMap.put("200", "success");
+ } else {
+ allMap.put(HttpStatus.NO_CONTENT + "", "璐圭敤缂栧彿涓嶆纭�");
+ }
+
+
+ return allMap;
+ }
+
+
+ public String getLastApprovalInfo(List<ServiceFundflow> serviceFundflows, String managerName) {
+ if (StringUtils.isEmpty(managerName)) return null;
+ if (org.springframework.util.CollectionUtils.isEmpty(serviceFundflows)) {
+ //濡傛灉鏄渶鍚庝竴涓汉瀹℃壒锛岃繖涓椂鍊欏彲鑳絝low閲岃繕娌℃湁鐢熸垚杩涘幓
+ SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ return "瀹℃壒浜猴細" + managerName + " & 瀹℃壒鏃堕棿锛�" + sd.format(new Date()) + " & 瀹℃壒缁撴灉锛氶�氳繃";
+ }
+ String mn = managerName.trim();
+ Optional<ServiceFundflow> lastApproval = serviceFundflows.stream().filter(flow -> flow.getCheckusername().contains(mn)).max(Comparator.comparing(ServiceFundflow::getCreateTime));
+
+ if (lastApproval.isPresent()) {
+ ServiceFundflow flow = lastApproval.get();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ if (flow.getCheckTime() == null) {
+ flow.setCheckTime(new Date());
+ }
+ String formattedTime = sdf.format(flow.getCheckTime());
+
+ return "瀹℃壒浜猴細" + managerName + " & 瀹℃壒鏃堕棿锛�" + formattedTime + " & 瀹℃壒缁撴灉锛氶�氳繃";
+ }
+
+ return "鏈壘鍒板鎵硅褰�";
+ }
+
+ public Boolean sendData(ServiceReimbursement serviceReimbursement) {
+ // fund鍜宖unddetail鐨勬暟鎹幏鍙�
+ addSharedData(serviceReimbursement.getId());
+ List<ServiceReimbursementShared> serviceReimbursementSharedList = sharedService.getRemShareInfoByRemId(serviceReimbursement.getId());
+ if (org.springframework.util.CollectionUtils.isEmpty(serviceReimbursementSharedList)) return false;
+
+ log.info("serviceReimbursementSharedList鐨勬暟鎹噺涓猴細{}", serviceReimbursementSharedList.size());
+
+ //detail璇︽儏
+ ServiceReimbursementdetailShared serviceReimbursementdetailShared = new ServiceReimbursementdetailShared();
+ serviceReimbursementdetailShared.setRbid(serviceReimbursementSharedList.get(0).getId());
+ List<ServiceReimbursementdetailShared> serviceReimbursementdetailShareds = detailSharedService.queryList(serviceReimbursementdetailShared);
+
+ //payee璇︽儏
+ ServiceReimbursementpayeeShared serviceReimbursementpayeeShared = new ServiceReimbursementpayeeShared();
+ serviceReimbursementpayeeShared.setRbid(serviceReimbursementSharedList.get(0).getId());
+ List<ServiceReimbursementpayeeShared> serviceReimbursementpayeeShareds = payeeSharedService.queryList(serviceReimbursementpayeeShared);
+
+
+ // 鏁版嵁鐨勫皝瑁�
+ Map<String, Object> map = new HashMap<>();
+ Map<String, Object> data = new HashMap<>();
+ //搴旂敤绫诲瀷 鍥哄畾鍊�
+ map.put("appName", "collaboration");
+
+ // 涓昏〃瀛楁鏁版嵁
+ Map<String, Object> data2 = new HashMap<>();
+ ServiceReimbursement sr = serviceReimbursementMapper.selectById(serviceReimbursement.getId());
+ data2.put("formmain_1209", formmain_1209(sr));
+ // 鏄庣粏琛ㄥ瓧娈垫暟鎹紝涓庨檮浠剁殑澶勭悊
+ Map<String, List<Map<String, Object>>> map1 = formson_1210(serviceReimbursementdetailShareds);
+ data2.put("formson_1210", map1.get("formson_1210"));
+ data2.put("thirdAttachments", map1.get("annexfilesList"));
+ data2.put("formson_1211", formson_1211(serviceReimbursementpayeeShareds));
+ data.put("data", data2);
+ //妯℃澘缂栧彿锛岀敱鑷磋繙鏂规彁渚涳紝璇ュ弬鏁板喅瀹氬彂璧峰崗鍚岀郴缁熶腑鍝釜娴佺▼
+ data.put("templateCode", "cyfbxd_rzhc_ceshi");
+ //鏄惁涓哄緟鍙戯細0:鏂板缓-鍙戦�侊紱1:鏂板缓-淇濆瓨寰呭彂
+ data.put("draft", "0");
+ //鍗忓悓鏍囬鍖洪檮浠讹紝Long鍨婰ist锛屽�间负闄勪欢鐨処d銆侷d鏄檮浠舵帴鍙e搷搴旂粨鏋滀腑fileUrl瀛楁鐨勫��
+// data.put("attachments", null);
+// //鍗忓悓鍏枃鐨刬d
+// data.put("relateDoc", "col|123,456;doc|321,654");
+ //鏈缃彇妯℃澘璁剧疆鐨勬爣棰�
+ data.put("subject", "");
+ ServiceReimbursement serviceReimbursement1 = serviceReimbursementMapper.selectById(serviceReimbursement.getId());
+ data.put("summaryId", serviceReimbursement1.getSummaryId() == null ? "" : serviceReimbursement1.getSummaryId());
+ map.put("data", data);
+ String strRes = null;
+ if (!active.equals("druid")) {
+ //濡傛灉鏄湰鍦扮幆澧冿紝灏变笉璋冭繖涓簡
+ String token = getToken();
+ JSONObject json1 = JSONObject.parseObject(token);
+ token = json1.get("id").toString();
+ ObjectMapper objectMapper = new ObjectMapper();
+ String json = null;
+ try {
+ json = objectMapper.writeValueAsString(map);
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ }
+ if (serviceReimbursement.getBackflowlevel() == 100L) {
+ log.error("-----------------Reimbursement鍐嶆鍙戣捣鐨剈rl涓猴細{}, 鍏ュ弬涓猴細{}", rexyurl + "?token=" + token, json);
+ strRes = HttpClientKit.postOpr(rexyurl + "?token=" + token, json);
+ } else {
+ log.error("-----------------Reimbursement棣栨鍙戣捣鐨剈rl涓猴細{}, 鍏ュ弬涓猴細{}", xyurl + "?token=" + token, json);
+ strRes = HttpClientKit.postOpr(xyurl + "?token=" + token, json);
+ // 灏唖ummaryId淇濆瓨璧锋潵,骞跺皢璇ュ�间繚瀛樺埌fund涓紝鐢ㄤ簬鍐嶆鍙戣捣鏃讹紝浣跨敤锛堝崗鍙嬭姹傦紝鍐嶆鍙戣捣鏃讹紝甯︿笂杩欎釜鍊硷級
+ JsonObject root = JsonParser.parseString(strRes).getAsJsonObject();
+ String code = root.get("code").getAsString();
+ if ("0".equals(code)) {
+ String appBusinessData = root.getAsJsonObject("data").get("app_bussiness_data").getAsString();
+ JsonObject appDataObj = JsonParser.parseString(appBusinessData).getAsJsonObject();
+ String summaryId = appDataObj.get("summaryId").getAsString();
+ serviceReimbursement.setSummaryId(summaryId);
+ serviceReimbursementMapper.updateById(serviceReimbursement);
+ }
+ }
+ }
+ log.error("-----Reimbursement-------------strRes鐨勫�间负锛歿}", strRes);
+ JSONObject jsonObject = JSONObject.parseObject(strRes);
+ String code = jsonObject.getString("code");
+ if (!code.equals("0")) {
+ return false;
+ }
+
+ return true;
+ }
+
+ private static final AtomicLong COUNTER = new AtomicLong(System.currentTimeMillis());
+
+ private Map<String, List<Map<String, Object>>> formson_1210(List<ServiceReimbursementdetailShared> serviceReimbursementdetailSharedList) {
+ Map<String, List<Map<String, Object>>> allMap = new HashMap<>();
+ List<Map<String, Object>> list = new ArrayList<>();
+ List<Map<String, Object>> annexfilesList = new ArrayList<>();
+ for (ServiceReimbursementdetailShared reimbursementdetailShared : serviceReimbursementdetailSharedList) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("浜ら�氬伐鍏�", reimbursementdetailShared.getTraffictype());
+ map.put("浜ら�氳垂", reimbursementdetailShared.getTrafficexpense());
+ map.put("甯傚唴浜ら��", reimbursementdetailShared.getCityfee());
+ map.put("浣忓璐�", reimbursementdetailShared.getHotelexpense());
+ map.put("鏉傝垂", reimbursementdetailShared.getOtherexpense());
+ map.put("浼欓璐规姤閿�", reimbursementdetailShared.getFoodexpenses());
+ map.put("浼欓璐硅ˉ鍔�", reimbursementdetailShared.getFoodallowance());
+ map.put("鍏朵粬璐圭敤", reimbursementdetailShared.getOtherfeeamount());
+ map.put("鍏朵粬璐圭敤璇存槑", reimbursementdetailShared.getOtherfeedesc());
+ map.put("閲戦鍚堣", "");
+ map.put("鍑哄樊鏃堕棿璧�", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(reimbursementdetailShared.getStarttime()));
+ map.put("鍑哄彂鍦扮偣", reimbursementdetailShared.getDeparture());
+ map.put("鍑哄樊鏃堕棿姝�", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(reimbursementdetailShared.getEndtime()));
+ map.put("鍑哄樊鐩殑鍦�", reimbursementdetailShared.getDestination());
+ map.put("澶╂暟", reimbursementdetailShared.getDays());
+ BigDecimal total = safe(reimbursementdetailShared.getCityfee()).add(safe(reimbursementdetailShared.getTrafficexpense())).add(safe(reimbursementdetailShared.getHotelexpense())).add(safe(reimbursementdetailShared.getOtherexpense())).add(safe(reimbursementdetailShared.getFoodexpenses())).add(safe(reimbursementdetailShared.getFoodallowance())).add(safe(reimbursementdetailShared.getOtherfeeamount()));
+ map.put("瀹為檯鎶ラ攢閲戦", total);
+ map.put("璐㈠姟澶囨敞", reimbursementdetailShared.getRemark());
+ map.put("id", reimbursementdetailShared.getRdid());
+ map.put("鍑哄樊浜�", reimbursementdetailShared.getPersonname());
+ map.put("鍥炰氦閫氬伐鍏�", "");
+ map.put("浜哄憳绫诲埆", reimbursementdetailShared.getPersontype());
+ map.put("浣忓璐规爣鍑�", "");
+ map.put("浣忓璐规爣鍑嗗悎璁�", reimbursementdetailShared.getHotelexpense());
+ Long fpuuid = COUNTER.incrementAndGet();
+ map.put("鍙戠エ闄勪欢", fpuuid);
+ map.put("绁ㄦ嵁璇嗗埆", "");
+ map.put("璇嗗埆浜�", "");
+ map.put("搴忓彿1", "");
+ Long qtuuid = COUNTER.incrementAndGet();
+ map.put("鍏朵粬闄勪欢", qtuuid);
+ map.put("涓汉绁ㄥす鐢ㄦ埛", "");
+ map.put("璇嗗埆绁ㄦ嵁", "");
+
+ list.add(map);
+
+ //闄勪欢澶勭悊
+ String annexfiles = reimbursementdetailShared.getAnnexfiles();
+ String invoicefiles = reimbursementdetailShared.getInvoicefiles();
+
+ int i = 0;
+ if (StringUtils.isNotEmpty(annexfiles)) {
+ List<RbDetailFile> parseArray = JSON.parseArray(annexfiles, RbDetailFile.class);
+ for (RbDetailFile rbDetailFile : parseArray) {
+ Map<String, Object> thirdAttachments = new HashMap<>();
+ thirdAttachments.put("subReference", qtuuid);
+ thirdAttachments.put("fileUrl", rbDetailFile.getFileid());
+ thirdAttachments.put("sort", i++);
+ annexfilesList.add(thirdAttachments);
+ }
+ }
+
+ if (StringUtils.isNotEmpty(invoicefiles)) {
+ List<RbDetailFile> parseArray = JSON.parseArray(invoicefiles, RbDetailFile.class);
+ for (RbDetailFile rbDetailFile : parseArray) {
+ Map<String, Object> thirdAttachments = new HashMap<>();
+ thirdAttachments.put("subReference", fpuuid);
+ thirdAttachments.put("fileUrl", rbDetailFile.getFileid());
+ thirdAttachments.put("sort", i++);
+ annexfilesList.add(thirdAttachments);
+ }
+ }
+
+ }
+ allMap.put("formson_1210", list);
+ allMap.put("annexfilesList", annexfilesList);
+ return allMap;
+ }
+
+ private BigDecimal safe(BigDecimal val) {
+ return val == null ? BigDecimal.ZERO : val;
+ }
+
+ private List<Map<String, Object>> formson_1211(List<ServiceReimbursementpayeeShared> serviceReimbursementpayeeShareds) {
+ Map<String, List<Map<String, Object>>> allMap = new HashMap<>();
+
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (ServiceReimbursementpayeeShared serviceReimbursementpayeeShared : serviceReimbursementpayeeShareds) {
+ Map<String, Object> map = new HashMap<>();
+
+ map.put("鏀舵浜�", serviceReimbursementpayeeShared.getPersonname());
+ map.put("鍗″彿", serviceReimbursementpayeeShared.getBankcardno());
+ map.put("寮�鎴烽摱琛�", serviceReimbursementpayeeShared.getBankname());
+ map.put("鎵撴閲戦", serviceReimbursementpayeeShared.getAmount());
+ map.put("浜哄憳绫诲埆鎵撴", serviceReimbursementpayeeShared.getPersontype());
+ map.put("鏍哥畻椤圭洰", "");
+ map.put("棰勭畻椤圭洰", "");
+ map.put("鍊熸柟鎽樿", "");
+ map.put("璐锋柟鎽樿", "");
+ list.add(map);
+ }
+ return list;
+ }
+
+ private Map<String, Object> formmain_1209(ServiceReimbursement serviceReimbursement) {
+ ServiceFundflow serviceFundflow = new ServiceFundflow();
+ serviceFundflow.setFundid(serviceReimbursement.getId());
+ serviceFundflow.setFundtype(1);
+ List<ServiceFundflow> serviceFundflows = serviceFundflowService.queryList(serviceFundflow);
+
+
+ Map<String, Object> formmain_1209 = new HashMap<>();
+
+ formmain_1209.put("鎶ラ攢鏃ユ湡", new SimpleDateFormat("yyyy-MM-dd HH:mm").format(serviceReimbursement.getApplyTime()));
+ formmain_1209.put("鍑哄樊浜�-浣滃簾", "");
+ formmain_1209.put("鎶ラ攢浜�", serviceReimbursement.getUsername());
+ formmain_1209.put("鍖哄煙缁勯暱", serviceReimbursement.getManagername());
+ formmain_1209.put("鍑哄樊浜嬬敱", serviceReimbursement.getReason());
+ formmain_1209.put("澶╂暟鍚堣", 0.00);
+ formmain_1209.put("浜ら�氳垂鍚堣", serviceReimbursement.getTotalamount());
+ formmain_1209.put("甯傚唴浜ら�氬悎璁�", 0.00);
+ formmain_1209.put("浣忓璐瑰悎璁�", 0.00);
+ formmain_1209.put("鏉傝垂鍚堣", 0.00);
+ formmain_1209.put("浼欓璐规姤閿�鍚堣", 0.00);
+ formmain_1209.put("浼欓璐硅ˉ鍔╁悎璁�", 0.00);
+ formmain_1209.put("鍏朵粬璐圭敤鍚堣", 0.00);
+ formmain_1209.put("棰嗘閲戦澶у啓", serviceReimbursement.getBigstrmoney());
+ formmain_1209.put("棰嗘閲戦", serviceReimbursement.getAmountrequested());
+ formmain_1209.put("璐㈠姟瀹℃壒", "");
+ formmain_1209.put("璐㈠姟閮ㄨ礋璐d汉瀹℃壒", getLastApprovalInfo(serviceFundflows, serviceReimbursement.getFinancedirector()));
+ if (serviceReimbursement.getBackflowlevel() == 3)
+ formmain_1209.put("鍔炲叕瀹や富浠诲鎵�", "瀹℃壒浜猴細鍛ㄨ偛鎴� & 瀹℃壒鏃堕棿锛�" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + " & 瀹℃壒缁撴灉锛氶�氳繃");
+ else formmain_1209.put("鍔炲叕瀹や富浠诲鎵�", getLastApprovalInfo(serviceFundflows, "鍛ㄨ偛鎴�"));
+
+ formmain_1209.put("澶囨敞", serviceReimbursement.getRemark());
+ formmain_1209.put("涓氬姟鍓櫌闀垮鎵�", serviceReimbursement.getBusvicepresident());
+ formmain_1209.put("璐㈠姟鍓櫌闀垮鎵�", serviceReimbursement.getFinvicepresident());
+ formmain_1209.put("涓績璐熻矗浜哄鎵�", serviceReimbursement.getOpochecker());
+ formmain_1209.put("寮�鎴烽摱琛�-浣滃簾", "");
+ formmain_1209.put("鍗″彿-浣滃簾", "");
+ formmain_1209.put("鏀粯鏂瑰紡", serviceReimbursement.getZffs());
+ formmain_1209.put("缁勯暱", getLastApprovalInfo(serviceFundflows, serviceReimbursement.getManagername()));
+ formmain_1209.put("瀹℃壒浜哄憳", getLastApprovalInfo(serviceFundflows, "闄堟厱鍗�"));
+ formmain_1209.put("鏀粯鏃ユ湡", serviceReimbursement.getRiqi());
+ formmain_1209.put("涓婁紶闄勪欢", "");
+ formmain_1209.put("鎵撴鍚堣", 0.00);
+ formmain_1209.put("鍙戠エ璇嗗埆-浣滃簾", "");
+ formmain_1209.put("璇嗗埆浜�-浣滃簾", "");
+ formmain_1209.put("璐㈠姟瀹℃壒绛惧瓧", "");
+ formmain_1209.put("璐㈠姟閮ㄨ礋璐d汉瀹℃壒绛惧瓧", getLastApprovalInfo(serviceFundflows, serviceReimbursement.getFinancedirector()));
+ formmain_1209.put("琛ㄥ崟缂栧彿1", "");
+ formmain_1209.put("CIF璐﹀閰嶇疆1", "");
+ formmain_1209.put("闄㈠尯", "");
+ formmain_1209.put("涓氬姟鍖哄煙", "");
+ formmain_1209.put("璐锋柟绉戠洰", "");
+ formmain_1209.put("缂栫爜", "");
+ formmain_1209.put("鏄惁鏀粯", "");
+ formmain_1209.put("鍑瘉鍙�", "");
+ formmain_1209.put("閾惰鍥炲崟", "");
+ formmain_1209.put("OFD", "");
+ formmain_1209.put("琛ㄥ崟闄勪欢", "");
+ formmain_1209.put("10204", "");
+ formmain_1209.put("鐜伴噾娴侀噺鍒嗘瀽", "");
+ formmain_1209.put("鎹愮尞鑰�", serviceReimbursement.getDonorname());
+ formmain_1209.put("鍑瘉绫诲埆", "");
+ formmain_1209.put("鍚堣", 0.00);
+ formmain_1209.put("瀹為檯鍚堣", 0.00);
+ formmain_1209.put("浼欓琛ュ姪鍚堣", 0.00);
+ formmain_1209.put("鍘嗗彶瀹℃壒璁板綍", "");
+ formmain_1209.put("琛ㄥ崟缂栧彿", serviceReimbursement.getId());
+ formmain_1209.put("鍘嗗彶瀹℃壒宸ㄩ箍鏌ヨ", "");
+ return formmain_1209;
+ }
+
+
+ public int uploadOAFileAndUpdateDb(ServiceReimbursementdetailShared remShare) throws Exception {
+ log.info("uploadOAFileAndUpdate鏂规硶鐨勫叆鍙�:{}", remShare);
+ System.out.println("uploadOAFileAndUpdate鏂规硶鐨勫叆鍙�:" + remShare);
+ //涓婁紶OA鏂囦欢
+ String strRes = getToken();
+
+ JSONObject json1 = JSONObject.parseObject(strRes);
+ strRes = json1.get("id").toString();
+ log.info("strRes鐨勫�� : {}", strRes);
+ String filePath = RuoYiConfig.getUploadPath();
+ String strFUrl = "http://129.88.242.39:8899/seeyon/rest/attachment?token=" + strRes;
+
+ List<RbDetailFile> parseArray2 = new ArrayList<>();
+ List<RbDetailFile> invoicefilesList = new ArrayList<>();
+
+ //鏅�氭枃浠朵笂浼�
+ List<RbDetailFile> parseArray = JSON.parseArray(remShare.getAnnexfiles(), RbDetailFile.class);
+ //鍙戠エ鏂囦欢涓婁紶
+ List<RbDetailFile> invoicefilesArray = JSON.parseArray(remShare.getInvoicefiles(), RbDetailFile.class);
+ //鏅�氶檮浠�
+ uploadFile(filePath, strFUrl, parseArray2, parseArray, remShare, "1");
+ //鍙戠エ闄勪欢
+ uploadFile(filePath, strFUrl, invoicefilesList, invoicefilesArray, remShare, "2");
+ return 0;
+ }
+
+ private String getToken() {
+ 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", "OPO绯荤粺");
+
+ JSONObject jsonObj = new JSONObject(map);
+
+ System.out.println("uploadOAFileAndUpdateDb + jsonObject" + jsonObj.toString() + "\r\n" + jsonObj.toJSONString());
+ String strRes = HttpClientKit.postOpr(strUrl, jsonObj.toString());
+ log.info("-----------------strRes-----鐨勫�间负锛歿}", strRes);
+ return strRes;
+ }
+
+ private Integer uploadFile(String filePath, String strFUrl, List<RbDetailFile> parseArray2, List<RbDetailFile> parseArray, ServiceReimbursementdetailShared remShare, String flag) throws Exception {
+ if (!CollectionUtils.isEmpty(parseArray)) {
+ for (int i = 0; i < parseArray.size(); i++) {
+ RbDetailFile rbDetailFile = parseArray.get(i);
+
+ log.info("filePath鐨勪慨鏀�:{}", filePath);
+ String url = rbDetailFile.getUrl();
+ //file鐢ㄧ殑鏄粷瀵逛綅缃�
+ String fileName = url.substring(url.indexOf("/profile/upload") + "/profile/upload".length());
+ String strFile = rbDetailFile.getUrl().replace(filePath, "/profile/upload");
+ File fileUpload = new File(filePath + fileName);
+ log.info("璇锋眰绗笁鏂圭殑鍏ュ弬strFile : {}, strFUrl : {}", strFile, filePath);
+ String struploadResult = HttpClientKit.sendPostWithFile(fileUpload, strFUrl);
+ log.info("绗笁鏂逛紶鍥炵殑鏁版嵁: {}", struploadResult);
+ if (StringUtils.isEmpty(struploadResult)) {
+ log.info("HttpClientKit.sendPostWithFile 璇锋眰涓虹┖浜� struploadResult:{}, strFUrl:{} ", struploadResult, strFUrl);
+ return 0;
+ }
+
+ //鑾峰彇fileid
+ JSONObject jsonR = JSONObject.parseObject(struploadResult);
+ JSONArray jsonArr = jsonR.getJSONArray("atts");
+ log.info("绗笁鏂逛紶鍥炵殑鏁版嵁鑾峰彇鐨刟tts : {}", jsonArr);
+ for (int j = 0; j < jsonArr.size(); j++) {
+ JSONObject jsonRet = jsonArr.getJSONObject(j);
+ rbDetailFile.setFileid(jsonRet.get("fileUrl").toString());
+ }
+ parseArray2.add(rbDetailFile);
+ }
+ }
+ if (flag.equals("1")) {
+ //濡傛灉flag涓�1,鍒欐槸鏅��
+ remShare.setAnnexfiles(JSON.toJSONString(parseArray2));
+
+ } else if (flag.equals("2")) {
+ //濡傛灉flag涓�2,鍒欐槸鍙戠エ
+ remShare.setInvoicefiles(JSON.toJSONString(parseArray2));
+ }
+ log.info("ServiceReimbursementdetailShared 鏄惁鍔犱笂浜唂ileid : {}", remShare);
+ 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 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