diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java index d4efc0c..90f2805 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java @@ -13,18 +13,21 @@ import com.google.gson.JsonObject; import com.ruoyi.common.constant.FileTransformation; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.EsignHttpResponse; +import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.AnnexTypeEnum; import com.ruoyi.common.enums.YesOrNoEnum; import com.ruoyi.common.exception.EsignDemoException; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.EmailOutUtil; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SmsUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.SaaSAPIFileUtils; import com.ruoyi.system.domain.entity.flow.MsCaseFlow; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.mapper.flow.MsCaseFlowMapper; +import com.ruoyi.system.service.ISysUserService; import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify; import com.ruoyi.wisdomarbitrate.domain.dto.dept.SealManage; import com.ruoyi.wisdomarbitrate.domain.dto.mscase.CaseLogRecord; @@ -58,6 +61,7 @@ import javax.annotation.Resource; import java.io.File; import java.time.LocalDate; import java.util.*; +import java.util.stream.Collectors; import static com.ruoyi.common.core.domain.AjaxResult.success; @@ -76,6 +80,8 @@ public class MsSignSealServiceImpl implements MsSignSealService { private SealManageMapper sealManageMapper; @Autowired MsCaseFlowMapper caseFlowMapper; + @Autowired + private SysUserMapper userMapper; @Autowired private SysUserMapper sysUserMapper; @@ -728,27 +734,60 @@ public class MsSignSealServiceImpl implements MsSignSealService { Long caseId = dto.getCaseId(); MsCaseAffiliate caseAffiliate = msCaseAffiliateMapper.selectByPrimaryKey(caseId); Integer organizeFlag = caseAffiliate.getOrganizeFlag(); - SealSignRecord sealSignRecordres = new SealSignRecord(); - MsSealSignRecord mssealSignRecord = new MsSealSignRecord(); - mssealSignRecord.setCaseAppliId(caseId); - List sealSignRecords = sealSignRecordMapper.selectSealSignRecord(mssealSignRecord); - if (sealSignRecords != null && sealSignRecords.size() > 0) { - String signFlowid = sealSignRecords.get(0).getSignFlowId(); - if(organizeFlag!=null){ - SealSignRecord sealSignRecord = new SealSignRecord(); - if(organizeFlag.intValue()==1){ - sealSignRecord.setPensonAccount(caseAffiliate.getContactTelphoneAgent()); - sealSignRecord.setPensonName(caseAffiliate.getNameAgent()); - }else { - String nameAgent = caseAffiliate.getNameAgent(); - if(StringUtils.isNotBlank(nameAgent)){ + + SysUser user = new SysUser(); + Long userId = SecurityUtils.getUserId(); + user.setUserId(userId); + List listSysUser = userMapper.selectUserList(user); + List allSysRole = new ArrayList<>(); + for(SysUser sysUser :listSysUser){ + List roles = sysUser.getRoles(); + allSysRole.addAll(roles); + } + List roleNames = allSysRole.stream().map(SysRole::getRoleName).collect(Collectors.toList()); + if(roleNames.contains("申请人")){ + SealSignRecord sealSignRecordres = new SealSignRecord(); + MsSealSignRecord mssealSignRecord = new MsSealSignRecord(); + mssealSignRecord.setCaseAppliId(caseId); + List sealSignRecords = sealSignRecordMapper.selectSealSignRecord(mssealSignRecord); + if (sealSignRecords != null && sealSignRecords.size() > 0) { + String signFlowid = sealSignRecords.get(0).getSignFlowId(); + if(organizeFlag!=null){ + SealSignRecord sealSignRecord = new SealSignRecord(); + if(organizeFlag.intValue()==1){ sealSignRecord.setPensonAccount(caseAffiliate.getContactTelphoneAgent()); sealSignRecord.setPensonName(caseAffiliate.getNameAgent()); }else { - sealSignRecord.setPensonAccount(caseAffiliate.getApplicationPhone()); - sealSignRecord.setPensonName(caseAffiliate.getApplicationName()); + String nameAgent = caseAffiliate.getNameAgent(); + if(StringUtils.isNotBlank(nameAgent)){ + sealSignRecord.setPensonAccount(caseAffiliate.getContactTelphoneAgent()); + sealSignRecord.setPensonName(caseAffiliate.getNameAgent()); + }else { + sealSignRecord.setPensonAccount(caseAffiliate.getApplicationPhone()); + sealSignRecord.setPensonName(caseAffiliate.getApplicationName()); + } } + sealSignRecord.setSignFlowid(signFlowid); + + Gson gson = new Gson(); + EsignHttpResponse signUrl = SignAward.signUrl(sealSignRecord); + JsonObject signUrlJsonObject = gson.fromJson(signUrl.getBody(), JsonObject.class); + JsonObject signUrlData = signUrlJsonObject.getAsJsonObject("data"); + String urlapply = signUrlData.get("shortUrl").getAsString(); + sealSignRecordres.setSealUrl(urlapply); } + } + return AjaxResult.success(sealSignRecordres); + + }else if(roleNames.contains("被申请人")){ + SealSignRecord sealSignRecordres = new SealSignRecord(); + MsSealSignRecord mssealSignRecord = new MsSealSignRecord(); + mssealSignRecord.setCaseAppliId(caseId); + List sealSignRecords = sealSignRecordMapper.selectSealSignRecord(mssealSignRecord); + if (sealSignRecords != null && sealSignRecords.size() > 0) { + String signFlowid = sealSignRecords.get(0).getSignFlowId(); + SealSignRecord sealSignRecord = new SealSignRecord(); + sealSignRecord.setPensonAccount(caseAffiliate.getRespondentPhone()); sealSignRecord.setSignFlowid(signFlowid); Gson gson = new Gson(); @@ -758,8 +797,9 @@ public class MsSignSealServiceImpl implements MsSignSealService { String urlapply = signUrlData.get("shortUrl").getAsString(); sealSignRecordres.setSealUrl(urlapply); } + return AjaxResult.success(sealSignRecordres); } - return AjaxResult.success(sealSignRecordres); + return AjaxResult.success(); } @Override