diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java index 59e7588..f46a5e6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java @@ -1,18 +1,5 @@ package com.ruoyi.web.controller.system; -import java.util.List; -import org.apache.commons.lang3.ArrayUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; @@ -21,6 +8,13 @@ import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.service.ISysDeptService; +import org.apache.commons.lang3.ArrayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 部门信息 @@ -44,6 +38,15 @@ public class SysDeptController extends BaseController List depts = deptService.selectDeptList(dept); return success(depts); } + /** + * 获取部门列表 + */ + @GetMapping("/selectList") + public AjaxResult selectList(SysDept dept) + { + List depts = deptService.selectDeptList(dept); + return success(depts); + } /** * 查询部门列表(排除节点) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsCaseApplicationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsCaseApplicationController.java index 07a629a..75d29f6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsCaseApplicationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsCaseApplicationController.java @@ -3,17 +3,18 @@ package com.ruoyi.web.controller.wisdomarbitrate.mscase; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.exception.EsignDemoException; import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseApplication; import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach; -import com.ruoyi.wisdomarbitrate.domain.vo.mscase.BookingVO; -import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationReq; -import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseApplicationVO; -import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseAttachVO; +import com.ruoyi.wisdomarbitrate.domain.vo.mscase.*; import com.ruoyi.wisdomarbitrate.service.mscase.MsCaseApplicationService; +import com.ruoyi.wisdomarbitrate.service.mscase.VideoConferenceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -31,6 +32,8 @@ import java.util.List; public class MsCaseApplicationController extends BaseController { @Resource private MsCaseApplicationService caseApplicationService; + @Autowired + private VideoConferenceService videoService; /** * 分页查询案件列表 @@ -243,4 +246,48 @@ public class MsCaseApplicationController extends BaseController { return caseApplicationService.confirmMediation(attach); } + /** + * 获取userSign + * @param userId + * @return + */ + @Anonymous + @GetMapping("/generateUserSign") + public AjaxResult generateUserSign(@RequestParam(required = true) String userId){ + if(StrUtil.isEmpty(userId)){ + error("参数校验失败"); + } + return AjaxResult.success(videoService.generateUserSign(userId)); + } + /** + * 生成房间号 + * @return + */ + @Anonymous + @GetMapping("/createRoomId") + public AjaxResult createRoomId(@RequestParam("caseId") Long caseId) { + + return success(videoService.createRoomId(caseId)); + } + /** + * 预约会议 + * @param reservedConferenceVO + * @return + */ + @PostMapping("/reservedConference") + public AjaxResult reservedConference(@Validated @RequestBody MsReservedConferenceVO reservedConferenceVO) throws Exception { + + return videoService.reservedConference(reservedConferenceVO); + } + /** + * 根据案件id查询已预约的会议 + * @param caseId + * @return + */ + @Anonymous + @GetMapping("/reserveConferenceList") + public AjaxResult reserveConferenceList( @RequestParam("caseId") Long caseId) { + + return success(videoService.reserveConferenceList(caseId)); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsVideoConferenceController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsVideoConferenceController.java index b4a994b..03d6e87 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsVideoConferenceController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/mscase/MsVideoConferenceController.java @@ -9,7 +9,6 @@ import com.ruoyi.wisdomarbitrate.domain.vo.mscase.SendRoomNoMessageVO; import com.ruoyi.wisdomarbitrate.domain.vo.mscase.VideoCallBackVO; import com.ruoyi.wisdomarbitrate.service.mscase.VideoConferenceService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @@ -35,50 +34,8 @@ public class MsVideoConferenceController extends BaseController { return videoService.videoList(caseId); } - /** - * 获取userSign - * @param userId - * @return - */ - @Anonymous - @GetMapping("/generateUserSign") - public AjaxResult generateUserSign(@RequestParam(required = true) String userId){ - if(StrUtil.isEmpty(userId)){ - error("参数校验失败"); - } - return AjaxResult.success(videoService.generateUserSign(userId)); - } - /** - * 生成房间号 - * @return - */ - @Anonymous - @GetMapping("/createRoomId") - public AjaxResult createRoomId(@RequestParam("caseId") Long caseId) { - return success(videoService.createRoomId(caseId)); - } - /** - * 根据案件id查询已预约的会议 - * @param caseId - * @return - */ - @Anonymous - @GetMapping("/reserveConferenceList") - public AjaxResult reserveConferenceList( @RequestParam("caseId") Long caseId) { - return success(videoService.reserveConferenceList(caseId)); - } - /** - * 预约会议 - * @param reservedConferenceVO - * @return - */ - @PostMapping("/reservedConference") - public AjaxResult reservedConference(@Validated @RequestBody MsReservedConferenceVO reservedConferenceVO) throws Exception { - - return videoService.reservedConference(reservedConferenceVO); - } /** * 从腾讯云下载文件到本地 * @param diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MsCaseApplicationReq.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MsCaseApplicationReq.java index 60d5818..1cb9511 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MsCaseApplicationReq.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MsCaseApplicationReq.java @@ -76,5 +76,9 @@ public class MsCaseApplicationReq { * 是否在线开庭,空-书面 */ private Integer hearDateFlag ; + /** + * 是否小程序,1-是 + */ + private Integer miniProgressFlag ; } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseApplicationMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseApplicationMapper.java index 63db421..a4c0a00 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseApplicationMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseApplicationMapper.java @@ -61,7 +61,7 @@ public interface MsCaseApplicationMapper extends Mapper { " " + "" + - " AND a.mediation_method = '1'" + + " AND c.mediation_method = '1'" + " " + "" + @@ -99,7 +99,7 @@ public interface MsCaseApplicationMapper extends Mapper { " " + "" + - " AND a.mediation_method = '1'" + + " AND c.mediation_method = '1'" + " " + @@ -133,7 +133,7 @@ public interface MsCaseApplicationMapper extends Mapper { " " + "" + - " AND a.mediation_method = '1'" + + " AND c.mediation_method = '1'" + " " + diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseMediatorMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseMediatorMapper.java index 0921f66..e79bfcd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseMediatorMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseMediatorMapper.java @@ -1,10 +1,19 @@ package com.ruoyi.wisdomarbitrate.mapper.mscase; import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseMediator; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import tk.mybatis.mapper.common.Mapper; /** * 案件预约表 */ public interface MsCaseMediatorMapper extends Mapper { + /** + * 查询最新一条申请人的预约信息 + * @param id + * @return + */ + @Select("SELECT id,case_appli_id caseAppliId,mediator_id mediatorId, mediator_name mediatorName,hear_date hearDate from ms_case_mediator where case_appli_id=#{id} and type is null order by id desc limit 1") + MsCaseMediator selectLastApplicant(@Param("id") Long id); } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java index bb194c8..ef7d337 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsCaseApplicationServiceImpl.java @@ -145,13 +145,20 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { public List list(MsCaseApplicationReq req) { // admin查询所有案件 if (StrUtil.equals(SecurityUtils.getUsername(), "admin")) { + + if(req.getHearDateFlag()!=null){ + // todo 暂时写死 + req.setCaseFlowId(9); + } startPage(); + return msCaseApplicationMapper.list(req, null); } // 根据用户查询角色 LoginUser loginUser = SecurityUtils.getLoginUser(); - SysUser sysUser = loginUser.getUser(); - List roles = sysUser.getRoles(); + // 根据id查询用户 + SysUser sysUser = sysUserMapper.selectUserById(loginUser.getUserId()); + List roles = loginUser.getUser().getRoles(); if (CollectionUtil.isEmpty(roles)) { throw new ServiceException("该用户未指定角色"); } @@ -170,21 +177,42 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { if (CollectionUtil.isEmpty(caseFlows)) { throw new ServiceException("该角色为绑定案件流程"); } + Map flowMap = caseFlows.stream().collect(Collectors.toMap(MsCaseFlow::getButtonAuthFlag, Function.identity())); + List caseStatusNames = caseFlows.stream().map(MsCaseFlow::getCaseStatusName).collect(Collectors.toList()); for (SysRole role : roles) { if(StrUtil.isNotEmpty(role.getRoleName())&&StrUtil.equals(role.getRoleName(),"申请人")){ - if(loginUser.getDeptId()!=null) { - req.setApplicationOrganId(String.valueOf(loginUser.getDeptId())); + if(sysUser.getDeptId()!=null) { + req.setApplicationOrganId(String.valueOf(sysUser.getDeptId())); } req.setApplicantFlag(1); + break; + } if(StrUtil.isNotEmpty(role.getRoleName())&&StrUtil.equals(role.getRoleName(),"被申请人")){ + caseStatusNames=new ArrayList<>(); // todo 被申请人案件根据被申请人身份证号查询案件列表 req.setRespondentIdentityNum(sysUser.getIdCard()); + MsCaseFlow caseFlow =null; + // todo 查询待调解流程id被申请人暂时写死 + if(req.getMiniProgressFlag()!=null) { + if (req.getHearDateFlag() != null) { +// caseFlow = flowMap.get("caseManagement:list:mediate"); + caseStatusNames.add("待调解"); + } else { + // 待选择调解员 + caseStatusNames.add("待选择调解员"); + } + }else { + // PC端 + caseStatusNames.add("待被申请人签收"); + } + + break; } } startPage(); // 查询案件列表 - List caseApplicationList = msCaseApplicationMapper.list(req, caseFlows.stream().map(MsCaseFlow::getCaseStatusName).collect(Collectors.toList())); + List caseApplicationList = msCaseApplicationMapper.list(req, caseStatusNames); return caseApplicationList; } @@ -571,7 +599,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { if(templateManage==null||StrUtil.isEmpty(templateManage.getTemOrigPath())){ throw new ServiceException("未找到模板"); } - String templatePath = "/home/ruoyi/" + templateManage.getTemOrigPath(); + String templatePath = "/home/ruoyi" + templateManage.getTemOrigPath(); templatePath=templatePath.replace("/profile","/uploadPath"); try { @@ -948,7 +976,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { criteria.andIsNull("type"); } criteria.andEqualTo("caseAppliId", vo.getId()); - criteria.andEqualTo("mediatorId", user.getUserId()); + // criteria.andEqualTo("mediatorId", user.getUserId()); int count = msCaseMediatorMapper.selectCountByExample(example); if (count > 0) { // 申请人已预约,更新主表流程节点 @@ -1029,12 +1057,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { // MsCaseApplication caseApplication = msCaseApplicationMapper.selectByPrimaryKey(id); // todo 返回申请人预约信息,预约信息查预约表 - Example example = new Example(MsCaseMediator.class); - Example.Criteria criteria = example.createCriteria(); - criteria.andIsNull("type"); - criteria.andEqualTo("caseAppliId", id); // criteria.andEqualTo("mediatorId", SecurityUtils.getUserId()); - MsCaseMediator msCaseMediator = msCaseMediatorMapper.selectOneByExample(example); + MsCaseMediator msCaseMediator = msCaseMediatorMapper.selectLastApplicant(id); if(msCaseMediator==null){ return AjaxResult.success(result); } @@ -2100,7 +2124,11 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { agentUser.setDeptId(Long.valueOf(affiliate.getApplicationOrganId())); userMapper.insertUser(agentUser); userRoleMapper.insertUserRole(agentUser.getUserId(), roleId); - } else if (null != agentUser.getDeptId() && !String.valueOf(agentUser.getDeptId()).equals(affiliate.getApplicationOrganId())) { + } else if (null == agentUser.getDeptId() ) { + // todo 未关联部门,关联部门 + agentUser.setDeptId(Long.valueOf(affiliate.getApplicationOrganId())); + userMapper.updateUser(agentUser); + }else if (null != agentUser.getDeptId() && !String.valueOf(agentUser.getDeptId()).equals(affiliate.getApplicationOrganId())) { if (null != agentUser.getDept() && StrUtil.isNotEmpty(agentUser.getDept().getDeptName())) { throw new ServiceException("该申请代理人已在【" + agentUser.getDept().getDeptName() + "】申请机构下存在,请检查填写信息是否正确"); } else { diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index d749958..83a5b25 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -274,21 +274,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update ms_sys_user - dept_id = #{deptId}, - user_name = #{userName}, - nick_name = #{nickName}, - id_card = #{idCard}, - email = #{email}, - phonenumber = #{phonenumber}, - sex = #{sex}, - avatar = #{avatar}, - password = #{password}, - status = #{status}, - login_ip = #{loginIp}, - login_date = #{loginDate}, - update_by = #{updateBy}, - remark = #{remark}, - specialty = #{specialty}, + dept_id = #{deptId}, + user_name = #{userName}, + nick_name = #{nickName}, + id_card = #{idCard}, + email = #{email}, + phonenumber = #{phonenumber}, + sex = #{sex}, + avatar = #{avatar}, + password = #{password}, + status = #{status}, + login_ip = #{loginIp}, + login_date = #{loginDate}, + update_by = #{updateBy}, + remark = #{remark}, + specialty = #{specialty}, update_time = sysdate() where user_id = #{userId}