diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java index 913f002..5968671 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java @@ -12,6 +12,7 @@ import com.ruoyi.wisdomarbitrate.domain.ArbitrateRecord; import com.ruoyi.wisdomarbitrate.domain.CaseApplication; import com.ruoyi.wisdomarbitrate.domain.SealSignRecord; import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO; +import com.ruoyi.wisdomarbitrate.domain.vo.ToDoCount; import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -38,11 +39,23 @@ public class CaseApplicationController extends BaseController { @GetMapping("/list") public TableDataInfo list(CaseApplication caseApplication) { startPage(); -// List list = caseApplicationService.selectCaseApplicationListNew(caseApplication); - List list = caseApplicationService.selectCaseApplicationList(caseApplication); + List list = caseApplicationService.selectCaseApplicationListByRole(caseApplication); +// List list = caseApplicationService.selectCaseApplicationList(caseApplication); return getDataTable(list); } + /** + * 根据角色查询待办数量 + * @return + */ + + @GetMapping("/toDoCount") + public AjaxResult toDoCount() { + ToDoCount toDoCount = caseApplicationService.selectToDoCount(); +// List list = caseApplicationService.selectCaseApplicationList(caseApplication); + return success(toDoCount); + } + /** * 新增立案数据 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java index cf2bd8c..aed7155 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java @@ -49,6 +49,14 @@ public interface SysRoleMapper */ public SysRole selectRoleById(Long roleId); + /** + * 根据角色名称查询角色id + * @param roleName + * @return + */ + public Long selectRoleIdByName(String roleName); + + /** * 根据用户ID查询角色 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java index d674678..8cc1a6a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/CaseApplication.java @@ -329,6 +329,30 @@ public class CaseApplication extends BaseEntity { */ private String userId; private List deptIds; + /** + * 部门长状态 + */ + private List deptHeadStatus; + /** + * 财务状态 + */ + private Integer financeStatus; + + public Integer getFinanceStatus() { + return financeStatus; + } + + public void setFinanceStatus(Integer financeStatus) { + this.financeStatus = financeStatus; + } + + public List getDeptHeadStatus() { + return deptHeadStatus; + } + + public void setDeptHeadStatus(List deptHeadStatus) { + this.deptHeadStatus = deptHeadStatus; + } public List getDeptIds() { return deptIds; diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/ToDoCount.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/ToDoCount.java new file mode 100644 index 0000000..4f01e8a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/ToDoCount.java @@ -0,0 +1,32 @@ +package com.ruoyi.wisdomarbitrate.domain.vo; + +import lombok.Data; + +/** + * @author wangqiong + * @description 待办数量 + * @date 2023-10-17 09:48 + */ +@Data +public class ToDoCount { + + private int caseApply; // 立案申请 + private int caseApplyCheck; // 待立案审查 + private int caseApplyPay; // 待缴费 + private int caseApplyPayCheck; // 待缴费确认 + private int caseApplyEvidence; //待案件质证 + private int caseApplyGroupCheck; // 待组庭审核 + private int caseApplyGroupConfirm; // 待组庭确定 +// private int caseApplyGroupNotice; + private int caseApplyArbitrateWay; // 待审核仲裁方式 + private int caseApplyGroupOnline; // 待开庭审理 + private int caseApplyGroupOffline; // 待书面审理 + private int caseApplyAward; // 待生成仲裁文书 + private int caseApplyAwardCheck; // 待核验仲裁文书 + private int caseApplyAwardConfirm; // 待审核仲裁文书 + private int caseApplyAwardSign; // 待仲裁文书签名 + private int caseApplyAwardSeal; // 待仲裁文书用印 + private int caseApplyAwardSend; // 待仲裁文书送达 + private int caseApplyStored; // 待案件归档 + private int caseApplyArchived; // 已归档 +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseApplicationMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseApplicationMapper.java index a682163..3a3cf75 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseApplicationMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/CaseApplicationMapper.java @@ -4,6 +4,7 @@ import com.ruoyi.wisdomarbitrate.domain.Arbitrator; import com.ruoyi.wisdomarbitrate.domain.CaseAffiliate; import com.ruoyi.wisdomarbitrate.domain.CaseApplication; import com.ruoyi.wisdomarbitrate.domain.dto.CaseConfirmPayDTO; +import com.ruoyi.wisdomarbitrate.domain.vo.ToDoCount; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -60,4 +61,10 @@ public interface CaseApplicationMapper { * @return */ List selectDeptHeadCaseApplicationList(@Param("caseApplication") CaseApplication caseApplication, @Param("statusList")List caseStatusList); + + ToDoCount selectAdminCaseToDoCount(); + + ToDoCount selectDeptHeadCaseToDoCount( @Param("statusList")List caseStatusList); + + ToDoCount selectTodoCountByRole(CaseApplication caseApplication); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseApplicationService.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseApplicationService.java index 46bfd0b..23ac00d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseApplicationService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseApplicationService.java @@ -6,12 +6,13 @@ import com.ruoyi.wisdomarbitrate.domain.ArbitrateRecord; import com.ruoyi.wisdomarbitrate.domain.CaseApplication; import com.ruoyi.wisdomarbitrate.domain.SealSignRecord; import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO; +import com.ruoyi.wisdomarbitrate.domain.vo.ToDoCount; import java.util.List; public interface ICaseApplicationService { List selectCaseApplicationList(CaseApplication caseApplication); - List selectCaseApplicationListNew(CaseApplication caseApplication); + List selectCaseApplicationListByRole(CaseApplication caseApplication); int insertcaseApplication(CaseApplication caseApplication); @@ -53,4 +54,10 @@ public interface ICaseApplicationService { AjaxResult creatTrialRecord(ArbitrateRecord arbitrateRecord); CaseApplication selectSignSealUrl(CaseApplication caseApplication) throws EsignDemoException; + + /** + * 查询待办数量 + * @return + */ + ToDoCount selectToDoCount(); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java index a86b85f..c6e9bd3 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java @@ -28,7 +28,11 @@ import com.ruoyi.common.utils.file.SaaSAPIFileUtils; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.exception.EsignDemoException; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysUserMapper; +import com.ruoyi.system.mapper.SysUserRoleMapper; +import com.ruoyi.wisdomarbitrate.domain.vo.ToDoCount; import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.system.mapper.SysDeptMapper; @@ -80,6 +84,10 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { @Autowired private SysUserMapper sysUserMapper; @Autowired + private SysUserRoleMapper userRoleMapper; + @Autowired + private SysRoleMapper roleMapper; + @Autowired private SealSignRecordMapper sealSignRecordMapper; @Autowired private CaseLogRecordMapper caseLogRecordMapper; @@ -99,7 +107,7 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { * @return */ // @Override - public List selectCaseApplicationListNew(CaseApplication caseApplication) { + public List selectCaseApplicationListByRole(CaseApplication caseApplication) { // 获取登录用户 LoginUser loginUser = getLoginUser(); SysUser user = loginUser.getUser(); @@ -125,11 +133,14 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { caseStatusList.add(CaseApplicationConstants.CONFIRMDED_PENDING_TRIAL); caseStatusList.add(CaseApplicationConstants.SIGN_ARBITRATION); caseStatusList.add(CaseApplicationConstants.ARBITRATED_SEAL); - return caseApplicationMapper.selectDeptHeadCaseApplicationList(caseApplication,caseStatusList); + caseApplication.setDeptHeadStatus(caseStatusList); } if(role.getRoleName().equals("仲裁员")){ caseApplication.setUserId(String.valueOf(userId)); } + if(role.getRoleName().equals("财务")){ + caseApplication.setFinanceStatus(CaseApplicationConstants.PENDING_PAYMENT_CONFIRM); + } if(role.getRoleName().equals("法律顾问")){ // 查询角色有关的用户部门 List deptIds = sysDeptMapper.selectUserDeptListByRoleId(role.getRoleId()); @@ -151,6 +162,64 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { } @Override + public ToDoCount selectToDoCount() { + + // 获取登录用户 + LoginUser loginUser = getLoginUser(); + SysUser user = loginUser.getUser(); + Long userId = user.getUserId(); + + // 查询登录人身份证号 + SysUser sysUser = sysUserMapper.selectUserById(userId); + List roles = sysUser.getRoles(); + // 没有角色不能查看案件列表 + if(CollectionUtil.isEmpty(roles)){ + throw new ServiceException("该用户没有角色权限"); + } + CaseApplication caseApplication = new CaseApplication(); + List caseStatusList=new ArrayList<>(); + for (SysRole role : roles) { + // 超级管理员和仲裁委(部门长)案件,可查看所有案件 √ + if(role.getRoleName().equals("超级管理员") + ){ + return caseApplicationMapper.selectAdminCaseToDoCount(); + } + if(role.getRoleName().equals("仲裁委") + ||role.getRoleName().equals("部门长")){ + + caseStatusList.add(CaseApplicationConstants.CONFIRMDED_PENDING_TRIAL); + caseStatusList.add(CaseApplicationConstants.SIGN_ARBITRATION); + caseStatusList.add(CaseApplicationConstants.ARBITRATED_SEAL); + caseApplication.setDeptHeadStatus(caseStatusList); + } + if(role.getRoleName().equals("仲裁员")){ + caseApplication.setUserId(String.valueOf(userId)); + } + if(role.getRoleName().equals("财务")){ + caseApplication.setFinanceStatus(CaseApplicationConstants.PENDING_PAYMENT_CONFIRM); + } + if(role.getRoleName().equals("法律顾问")){ + // 查询角色有关的用户部门 + List deptIds = sysDeptMapper.selectUserDeptListByRoleId(role.getRoleId()); + caseApplication.setDeptIds(deptIds); + } + if(StrUtil.isEmpty(caseApplication.getNameId())&&role.getRoleName().equals("申请人")){ + // 查询角色有关的用户部门 + caseApplication.setNameId(String.valueOf(sysUser.getDeptId())); + } + if(role.getRoleName().equals("被申请人")){ + // + caseApplication.setIdCard(String.valueOf(sysUser.getIdCard())); + } + } + + + + + // 根据条件查询申请人,被申请人,仲裁员,法律顾问案件 + return caseApplicationMapper.selectTodoCountByRole(caseApplication); + } + @Override public List selectCaseApplicationList(CaseApplication caseApplication) { return caseApplicationMapper.selectAdminCaseApplicationList(caseApplication); @@ -206,7 +275,10 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { } // 组装申请代理人信息 - buildAgentInfo(caseAffiliate); + String agentInfoFlag = buildAgentInfo(caseAffiliate); + if(StrUtil.isNotEmpty(agentInfoFlag)){ + throw new ServiceException(agentInfoFlag); + } } } @@ -294,7 +366,10 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { caseAffiliate.setApplicationOrganId(String.valueOf(dept.getDeptId())); } - buildAgentInfo(caseAffiliate); + String agentInfoFlag = buildAgentInfo(caseAffiliate); + if(StrUtil.isNotEmpty(agentInfoFlag)){ + throw new ServiceException(agentInfoFlag); + } } @@ -318,12 +393,14 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { * 组装申请代理人信息 * @param caseAffiliate */ - private void buildAgentInfo(CaseAffiliate caseAffiliate) { - if(StrUtil.isNotEmpty(caseAffiliate.getNameAgent())){ + private String buildAgentInfo(CaseAffiliate caseAffiliate) { + if (caseAffiliate.getIdentityType()==1&&StrUtil.isNotEmpty(caseAffiliate.getNameAgent())) { + // 查询申请人角色id + Long roleId = roleMapper.selectRoleIdByName("申请人"); // 组装申请机构代理人信息,用户表新增并且和部门关联 // 根据代理人身份证去用户表查询,有修改,么有新增 SysUser agentUser = sysUserMapper.selectUserByIdCard(caseAffiliate.getIdentityNumAgent()); - if(agentUser==null){ + if (agentUser == null) { agentUser = new SysUser(); agentUser.setIdCard(caseAffiliate.getIdentityNumAgent()); agentUser.setNickName(caseAffiliate.getNameAgent()); @@ -332,18 +409,46 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { agentUser.setPassword(SecurityUtils.encryptPassword(Constants.DEFAULT_PASSWORD)); agentUser.setDeptId(Long.valueOf(caseAffiliate.getApplicationOrganId())); int insertUserRow = sysUserMapper.insertUser(agentUser); - if(insertUserRow>0) { + // 新增角色为申请人 + ArrayList sysUserRoles = new ArrayList<>(); + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setUserId(agentUser.getUserId()); + sysUserRole.setRoleId(roleId); + sysUserRoles.add(sysUserRole); + if(CollectionUtil.isNotEmpty(sysUserRoles)) { + userRoleMapper.batchUserRole(sysUserRoles); + } + if (insertUserRow > 0) { caseAffiliate.setApplicantAgentUserId(String.valueOf(agentUser.getUserId())); // 发送短信 todo } - }else { + } else if (null != agentUser.getDeptId() && !String.valueOf(agentUser.getDeptId()).equals(caseAffiliate.getApplicationOrganId())) { + return "申请机构与申请代理人不匹配"; + } else if (null != agentUser.getDeptId() && String.valueOf(agentUser.getDeptId()).equals(caseAffiliate.getApplicationOrganId())){ // 同步用户表和案件关联人表的手机号和名称 caseAffiliate.setContactTelphoneAgent(agentUser.getPhonenumber()); caseAffiliate.setNameAgent(agentUser.getNickName()); caseAffiliate.setApplicantAgentUserId(String.valueOf(agentUser.getUserId())); + // 新增角色为申请人 + if(agentUser.getRoleIds()!=null) { + List longList = Arrays.asList(agentUser.getRoleIds()); + if(!longList.contains(roleId)) { + ArrayList sysUserRoles = new ArrayList<>(); + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setUserId(agentUser.getUserId()); + sysUserRole.setRoleId(roleId); + sysUserRoles.add(sysUserRole); + if (CollectionUtil.isNotEmpty(sysUserRoles)) { + userRoleMapper.batchUserRole(sysUserRoles); + } + } + } + } + } + return null; } @Override @@ -471,7 +576,13 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { // }else { // caseApplicationListinsert.add(caseApplication); // } - caseApplicationListinsert.add(caseApplication); + if(StrUtil.isEmpty(caseApplication.getErrorMsg())) { + caseApplicationListinsert.add(caseApplication); + }else { + // 拼接错误信息 + failureMsg.append("
").append("第").append(i+2).append("行:").append(caseApplication.getErrorMsg().toString()); + + } }else { // 拼接错误信息 failureMsg.append("
").append("第").append(i+2).append("行:").append(caseApplication.getErrorMsg().toString()); @@ -519,7 +630,6 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { if(caseAffiliates!=null&&caseAffiliates.size()>0){ for (CaseAffiliate caseAffiliate : caseAffiliates){ caseAffiliate.setCaseAppliId(caseApplicationItera.getId()); - buildAgentInfo(caseAffiliate); } caseAffiliateMapper.batchCaseAffiliate(caseAffiliates); @@ -1272,6 +1382,8 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { return caseApplication; } + + @Override @Transactional public int pendTralSure(CaseApplication caseApplication) { @@ -1384,6 +1496,15 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService { if(StrUtil.isNotEmpty(caseApplication.getName())){ setApplicantOrganization(caseAffiliate, caseApplication, deptMap); } + String s = buildAgentInfo(caseAffiliate); + if(StrUtil.isNotEmpty(s)){ + StringBuilder errorMsg = caseApplication.getErrorMsg(); + if(StrUtil.isEmpty(errorMsg)){ + errorMsg=new StringBuilder(); + } + errorMsg.append(s); + caseApplication.setErrorMsg(errorMsg); + } caseAffiliatesnew.add(caseAffiliate); // 组装被申请人信息 diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/WeChatUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/WeChatUserServiceImpl.java index be822f6..727c525 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/WeChatUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/WeChatUserServiceImpl.java @@ -74,14 +74,14 @@ public class WeChatUserServiceImpl implements WeChatUserService { return "短信发送失败"; } /** - * 设置字典缓存 + * 设置验证码缓存 * * @param key 参数键 - * @param code 字典数据列表 + * @param code 验证码 */ public static void setCodeCache(String key, String code) { - SpringUtils.getBean(RedisCache.class).setCacheObject(getVerifyCodeCacheKey(key), code, 5,TimeUnit.MILLISECONDS); + SpringUtils.getBean(RedisCache.class).setCacheObject(getVerifyCodeCacheKey(key), code, 5,TimeUnit.MINUTES); } @@ -107,9 +107,12 @@ public class WeChatUserServiceImpl implements WeChatUserService { @Transactional @Override public AjaxResult registerUser(IdentityAuthentication ientityAuthentication) { + String codeCache = getCodeCache(ientityAuthentication.getPhone()); // 校验短信验证码 - if(StrUtil.isEmpty(getCodeCache(ientityAuthentication.getPhone()))){ - return AjaxResult.success("验证码校验失败"); + if(StrUtil.isEmpty(codeCache)){ + return AjaxResult.warn("验证码校验失败"); + }else if(!codeCache.equals(ientityAuthentication.getVerifyCode())){ + return AjaxResult.warn("验证码校验失败"); } SysUser sysUserName=sysUserMapper.selectUserByUserName(ientityAuthentication.getUserName()); if(sysUserName!=null){ @@ -140,7 +143,7 @@ public class WeChatUserServiceImpl implements WeChatUserService { sysUser.setPassword(SecurityUtils.encryptPassword(ientityAuthentication.getPassWord())); int row = sysUserMapper.insertUser(sysUser); if(row<1) { - return AjaxResult.error("注册失败"); + return AjaxResult.warn("注册失败"); } } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml index 52306c2..783f153 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -92,8 +92,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where r.role_key=#{roleKey} and r.del_flag = '0' limit 1 - - + + + insert into sys_role( role_id, role_name, diff --git a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseApplicationMapper.xml b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseApplicationMapper.xml index aa643f6..05929d0 100644 --- a/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseApplicationMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/wisdomarbitrate/CaseApplicationMapper.xml @@ -39,7 +39,13 @@ + + + +