diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index f937871..772efd7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -1,19 +1,7 @@ package com.ruoyi.web.controller.system; -import java.util.List; -import java.util.stream.Collectors; -import javax.servlet.http.HttpServletResponse; - -import cn.hutool.core.util.StrUtil; +import cn.hutool.core.collection.CollectionUtil; import com.ruoyi.common.annotation.Anonymous; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -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 org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -25,10 +13,23 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysPostService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +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 org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.stream.Collectors; /** * 用户信息 @@ -51,6 +52,8 @@ public class SysUserController extends BaseController @Autowired private ISysPostService postService; + @Autowired + private SysDeptMapper deptMapper; /** * 获取用户列表 @@ -106,12 +109,18 @@ public class SysUserController extends BaseController List roles = roleService.selectRoleAll(); ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); ajax.put("posts", postService.selectPostAll()); + if (StringUtils.isNotNull(userId)) { SysUser sysUser = userService.selectUserById(userId); ajax.put(AjaxResult.DATA_TAG, sysUser); ajax.put("postIds", postService.selectPostListByUserId(userId)); ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); + List sysUserDepts = deptMapper.selectDeptByUserId(userId); + if(CollectionUtil.isNotEmpty(sysUserDepts)) { + ajax.put("deptId", sysUserDepts.stream().map(SysDept::getDeptId).collect(Collectors.toList())); + + } } return ajax; } 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 500b19d..6e63222 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 @@ -2,12 +2,14 @@ package com.ruoyi.web.controller.wisdomarbitrate.mscase; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.IdcardUtil; 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.common.utils.IdCardUtils; import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseApplication; import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach; import com.ruoyi.wisdomarbitrate.domain.vo.mscase.*; @@ -20,7 +22,11 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; +import java.util.Map; + /** * 案件列表控制层 * @Author wangqiong @@ -57,6 +63,36 @@ public class MsCaseApplicationController extends BaseController { return success(caseApplicationService.insert(caseApplication)); } + /** + * 根据身份证号获取性别和出生日期 + */ + @GetMapping("/getInfoByIdCard") + public AjaxResult getInfoByIdCard(@RequestParam("idCard") String idCard) + { + if(StrUtil.isEmpty(idCard)){ + error("参数校验失败"); + } + if(!IdcardUtil.isValidCard(idCard)){ + error("身份证不合法,请输入正确的身份证号"); + } + AjaxResult ajax = AjaxResult.success(); + Map identityNumMap = IdCardUtils.getBirAgeSex(idCard); + String birthday = identityNumMap.get("birthday"); + if (StrUtil.isNotEmpty(birthday)) { + SimpleDateFormat yyyymmddFormat = new SimpleDateFormat("yyyy-MM-dd"); + + Date birthdayDate = null; + try { + birthdayDate = yyyymmddFormat.parse(birthday); + } catch (Exception e) { + e.printStackTrace(); + } + ajax.put("respondentBirth",birthdayDate); + } + //从身份证抓取性别 + ajax.put("respondentSex",identityNumMap.get("sexCode")); + return ajax; + } /** * 修改案件 @@ -67,7 +103,7 @@ public class MsCaseApplicationController extends BaseController { if(caseApplication.getId()==null){ error("id不能为空"); } - return caseApplicationService.update(caseApplication); + return success(caseApplicationService.update(caseApplication)); } /** * 根据id查询案件 @@ -168,7 +204,7 @@ public class MsCaseApplicationController extends BaseController { */ @PostMapping("/updateBooking") public AjaxResult updateBooking(@RequestBody BookingVO vo ) { - if(vo.getId()==null || CollectionUtil.isEmpty(vo.getUserList())){ + if(vo.getId()==null || CollectionUtil.isEmpty(vo.getMediatorList())){ return error("参数校验失败"); } return caseApplicationService.updateBooking(vo); @@ -218,7 +254,7 @@ public class MsCaseApplicationController extends BaseController { */ @PostMapping("/mediation") public AjaxResult mediation(@RequestBody MsCaseApplicationReq req) { - if (req.getCaseFlowId() == null || (req.getId() == null && StrUtil.isEmpty(req.getBatchNumber()))) { + if (req.getCaseFlowId() == null || req.getId() == null) { return error("参数校验失败"); } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java index a685e06..8221fc1 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java @@ -1,12 +1,5 @@ package com.ruoyi.common.core.controller; -import java.beans.PropertyEditorSupport; -import java.util.Date; -import java.util.List; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.web.bind.WebDataBinder; -import org.springframework.web.bind.annotation.InitBinder; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ruoyi.common.constant.HttpStatus; @@ -20,6 +13,14 @@ import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.sql.SqlUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.annotation.InitBinder; + +import java.beans.PropertyEditorSupport; +import java.util.Date; +import java.util.List; /** * web层通用数据处理 @@ -184,13 +185,7 @@ public class BaseController return getLoginUser().getUserId(); } - /** - * 获取登录部门id - */ - public Long getDeptId() - { - return getLoginUser().getDeptId(); - } + /** * 获取登录用户名 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index 7bb48c0..0c2b92c 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -1,18 +1,19 @@ package com.ruoyi.common.core.domain.entity; -import java.util.Date; -import java.util.List; -import javax.validation.constraints.*; - import com.ruoyi.common.annotation.DictConvert; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel.ColumnType; import com.ruoyi.common.annotation.Excel.Type; -import com.ruoyi.common.annotation.Excels; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.xss.Xss; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import java.util.Date; +import java.util.List; /** * 用户对象 sys_user @@ -27,9 +28,9 @@ public class SysUser extends BaseEntity @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号") private Long userId; - /** 部门ID */ - @Excel(name = "部门编号", type = Type.IMPORT) - private Long deptId; + /** 部门IDs */ +// @Excel(name = "部门编号", type = Type.IMPORT) + private List deptIds; /** 用户账号 */ @Excel(name = "登录名称") @@ -52,6 +53,15 @@ public class SysUser extends BaseEntity this.nickNameAndNum = nickNameAndNum; } + public List getDeptIds() { + return deptIds; + } + + public void setDeptIds(List deptIds) { + this.deptIds = deptIds; + } + + /** 用户身份证号 */ @Excel(name = "身份证号") private String idCard; @@ -96,11 +106,11 @@ public class SysUser extends BaseEntity private Date loginDate; /** 部门对象 */ - @Excels({ - @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), - @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) - }) - private SysDept dept; +// @Excels({ +// @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), +// @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) +// }) + private List depts; /** 角色对象 */ private List roles; @@ -119,6 +129,8 @@ public class SysUser extends BaseEntity } + + public SysUser(Long userId) { this.userId = userId; @@ -144,11 +156,6 @@ public class SysUser extends BaseEntity return userId != null && 1L == userId; } - public Long getDeptId() - { - return deptId; - } - public String getSexName() { return sexName; } @@ -165,9 +172,9 @@ public class SysUser extends BaseEntity this.specialty = specialty; } - public void setDeptId(Long deptId) + public void setDeptId(List deptId) { - this.deptId = deptId; + this.deptIds = deptId; } @Xss(message = "用户昵称不能包含脚本字符") @@ -288,14 +295,14 @@ public class SysUser extends BaseEntity this.loginDate = loginDate; } - public SysDept getDept() + public List getDept() { - return dept; + return depts; } - public void setDept(SysDept dept) + public void setDept(List depts) { - this.dept = dept; + this.depts = depts; } public List getRoles() @@ -346,11 +353,12 @@ public class SysUser extends BaseEntity this.idCard = idCard; } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("userId", getUserId()) - .append("deptId", getDeptId()) + .append("deptIds", getDeptIds()) .append("userName", getUserName()) .append("idCard", getIdCard()) .append("nickName", getNickName()) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java index 670e6b3..a5e6764 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java @@ -21,10 +21,7 @@ public class LoginUser implements UserDetails */ private Long userId; - /** - * 部门ID - */ - private Long deptId; + /** * 用户唯一标识 @@ -81,10 +78,9 @@ public class LoginUser implements UserDetails this.permissions = permissions; } - public LoginUser(Long userId, Long deptId, SysUser user, Set permissions) + public LoginUser(Long userId, SysUser user, Set permissions) { this.userId = userId; - this.deptId = deptId; this.user = user; this.permissions = permissions; } @@ -99,15 +95,7 @@ public class LoginUser implements UserDetails this.userId = userId; } - public Long getDeptId() - { - return deptId; - } - public void setDeptId(Long deptId) - { - this.deptId = deptId; - } public String getToken() { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/AnnexTypeEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/AnnexTypeEnum.java index 9cdec9b..9abc19d 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/AnnexTypeEnum.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/AnnexTypeEnum.java @@ -17,6 +17,10 @@ public enum AnnexTypeEnum implements EnumsInterface { MEETING_VIDEO(5, "会议视频"), MEDIATE(6, "庭审笔录"), MEDIATE_BOOK(7, "调解书"), + MEDIATION_FILES(8, "调解资料"), + + SEAL_PICTURE(10, "印章图片"), + ; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/MediationMethodEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/MediationMethodEnum.java new file mode 100644 index 0000000..b19d8a7 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/MediationMethodEnum.java @@ -0,0 +1,64 @@ +package com.ruoyi.common.enums; + +import com.ruoyi.common.interfaces.EnumsInterface; + +/** + * @Classname AnnexTypeEnum + * @Description 调解方式枚举 + * @Version 1.0.0 + * @Date 2024/1/12 17:50 + * @Created wangqiong + */ +public enum MediationMethodEnum implements EnumsInterface { + ON_LINE("1", "线上调解"), + OFF_LINE("2", "线下调解"), + + ; + + private final String code; + private final String text; + + MediationMethodEnum(String code, String text) + { + this.code = code; + this.text = text; + } + + public String getCode() + { + return code; + } + + public String getText() + { + return text; + } + + /** + * 根据code获取text + * @param codeNo + * @return + */ + public static String getTextByCode(String codeNo){ + for (MediationMethodEnum value : MediationMethodEnum.values()) { + if (value.getCode().equals(codeNo)){ + return value.getText(); + } + } + return codeNo; + } + + /** + * 根据text获取code + * @param textStr + * @return + */ + public static String getCodeByText(String textStr){ + for (MediationMethodEnum value : MediationMethodEnum.values()) { + if (value.getText().equals(textStr)){ + return value.getText(); + } + } + return textStr; + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java index a6f3d53..ba1101e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java @@ -29,20 +29,7 @@ public class SecurityUtils } } - /** - * 获取部门ID - **/ - public static Long getDeptId() - { - try - { - return getLoginUser().getDeptId(); - } - catch (Exception e) - { - throw new ServiceException("获取部门ID异常", HttpStatus.UNAUTHORIZED); - } - } + /** * 获取用户账户 diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java index 1bc2f69..3b08f9f 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java @@ -1,11 +1,5 @@ package com.ruoyi.framework.aspectj; -import java.util.ArrayList; -import java.util.List; -import org.aspectj.lang.JoinPoint; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Before; -import org.springframework.stereotype.Component; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.entity.SysRole; @@ -15,6 +9,13 @@ import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.security.context.PermissionContextHolder; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; /** * 数据过滤处理 @@ -119,13 +120,13 @@ public class DataScopeAspect } else if (DATA_SCOPE_DEPT.equals(dataScope)) { - sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId())); + sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDept())); } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) { sqlString.append(StringUtils.format( " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )", - deptAlias, user.getDeptId(), user.getDeptId())); + deptAlias, user.getDept(), user.getDept())); } else if (DATA_SCOPE_SELF.equals(dataScope)) { diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java index 5dcdf90..cd47f14 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java @@ -61,6 +61,6 @@ public class UserDetailsServiceImpl implements UserDetailsService public UserDetails createLoginUser(SysUser user) { - return new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user)); + return new LoginUser(user.getUserId(), user, permissionService.getMenuPermission(user)); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java index 2bbd318..113d68e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java @@ -1,5 +1,7 @@ package com.ruoyi.system.domain; +import java.util.List; + /** * 当前在线会话 * @@ -10,8 +12,6 @@ public class SysUserOnline /** 会话编号 */ private String tokenId; - /** 部门名称 */ - private String deptName; /** 用户名称 */ private String userName; @@ -41,15 +41,7 @@ public class SysUserOnline this.tokenId = tokenId; } - public String getDeptName() - { - return deptName; - } - public void setDeptName(String deptName) - { - this.deptName = deptName; - } public String getUserName() { diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java index 4ef0d06..7325df0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java @@ -1,8 +1,9 @@ package com.ruoyi.system.mapper; -import java.util.List; -import org.apache.ibatis.annotations.Param; import com.ruoyi.common.core.domain.entity.SysDept; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 部门管理 数据层 @@ -124,4 +125,12 @@ public interface SysDeptMapper * @return */ int batchSave(@Param("list")List sysDepts); + + /** + * 根据用户id查询部门信息 + * @param userId + * @return + */ + + List selectDeptByUserId(Long userId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptMapper.java index 2735fd2..e8e4504 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserDeptMapper.java @@ -18,7 +18,7 @@ public interface SysUserDeptMapper * @param userId 用户ID * @return 用户对象信息 */ - public List selectUserById(Long userId); + public List selectUserDeptById(Long userId); /** * 新增 @@ -41,7 +41,7 @@ public interface SysUserDeptMapper * @param userId 用户ID * @return 结果 */ - public int deleteUserById(@Param("userId)") Long userId); + public int deleteUserById(Long userId); /** * 批量删除 @@ -50,5 +50,4 @@ public interface SysUserDeptMapper * @return 结果 */ public int deleteUserByIds(@Param("ids") Long[] userIds); - } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java index f80a877..f2c701c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java @@ -87,10 +87,6 @@ public class SysUserOnlineServiceImpl implements ISysUserOnlineService sysUserOnline.setBrowser(user.getBrowser()); sysUserOnline.setOs(user.getOs()); sysUserOnline.setLoginTime(user.getLoginTime()); - if (StringUtils.isNotNull(user.getUser().getDept())) - { - sysUserOnline.setDeptName(user.getUser().getDept().getDeptName()); - } return sysUserOnline; } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index afd219d..72d7d19 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -1,11 +1,12 @@ package com.ruoyi.system.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.entity.SysUserDept; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; @@ -26,7 +27,6 @@ import org.springframework.util.CollectionUtils; import javax.validation.Validator; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -53,6 +53,8 @@ public class SysUserServiceImpl implements ISysUserService { @Autowired private SysUserRoleMapper userRoleMapper; + @Autowired + private SysUserDeptMapper userDeptMapper; @Autowired private SysUserPostMapper userPostMapper; @@ -238,28 +240,21 @@ public class SysUserServiceImpl implements ISysUserService { @Override @Transactional public AjaxResult insertUser(SysUser user) { - Long deptId = user.getDeptId(); - Long[] postIds = user.getPostIds(); - if (deptId != null) { - SysDept dept = sysDeptMapper.selectDeptById(deptId); - Integer deptType = dept.getDeptType(); - if (deptType!=null && deptType.intValue() == 1) { - SysPost sysPost = postMapper.selectPostByPostCode("jbr"); - Long postId = sysPost.getPostId(); - if (postIds.length > 0) { - boolean isContain = Arrays.asList(postIds).contains(postId); - if (isContain) { - List sysUsers = userMapper.selectUserByDeptId(deptId); - if (sysUsers != null && sysUsers.size() > 0) { - return AjaxResult.error("部门类型为仲裁机构的部门的岗位为经办人的用户只能有一个!"); - } - } - } - } - } - // 新增用户信息 int rows = userMapper.insertUser(user); + // 新增用户部门关联 + if(CollectionUtil.isNotEmpty(user.getDeptIds())) { + // 先删除用户与部门关联 + userDeptMapper.deleteUserById(user.getUserId()); + List userDepts = new ArrayList<>(); + for (Long userDeptId : user.getDeptIds()) { + SysUserDept userDept = new SysUserDept(); + userDept.setUserId(user.getUserId()); + userDept.setDeptId(userDeptId); + userDepts.add(userDept); + } + userDeptMapper.batchSave(userDepts); + } // 新增用户岗位关联 insertUserPost(user); // 新增用户与角色管理 @@ -287,29 +282,20 @@ public class SysUserServiceImpl implements ISysUserService { @Override @Transactional public AjaxResult updateUser(SysUser user) { - Long deptId = user.getDeptId(); - Long[] postIds = user.getPostIds(); - if (deptId != null) { - SysDept dept = sysDeptMapper.selectDeptById(deptId); - Integer deptType = dept.getDeptType(); - if (deptType != null && deptType.intValue() == 1) { - SysPost sysPost = postMapper.selectPostByPostCode("jbr"); - if(sysPost!=null) { - Long postId = sysPost.getPostId(); - if (postId!=null&&postIds.length > 0) { - boolean isContain = Arrays.asList(postIds).contains(postId); - if (isContain) { - List sysUsers = userMapper.selectUserByDeptId(deptId); - if (sysUsers != null && sysUsers.size() > 0) { - return AjaxResult.error("部门类型为仲裁机构的部门的岗位为经办人的用户只能有一个!"); - } - } - } - } - } - } - Long userId = user.getUserId(); + // 新增用户部门关联 + if(CollectionUtil.isNotEmpty(user.getDeptIds())) { + // 先删除用户与部门关联 + userDeptMapper.deleteUserById(user.getUserId()); + List userDepts = new ArrayList<>(); + for (Long userDeptId : user.getDeptIds()) { + SysUserDept userDept = new SysUserDept(); + userDept.setUserId(user.getUserId()); + userDept.setDeptId(userDeptId); + userDepts.add(userDept); + } + userDeptMapper.batchSave(userDepts); + } // 删除用户与角色关联 userRoleMapper.deleteUserRoleByUserId(userId); // 新增用户与角色管理 @@ -474,6 +460,8 @@ public class SysUserServiceImpl implements ISysUserService { userRoleMapper.deleteUserRole(userIds); // 删除用户与岗位关联 userPostMapper.deleteUserPost(userIds); + // 删除用户部门关联 + userDeptMapper.deleteUserByIds(userIds); return userMapper.deleteUserByIds(userIds); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseAffiliate.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseAffiliate.java index 12097e7..6fa4b38 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseAffiliate.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseAffiliate.java @@ -44,6 +44,16 @@ public class MsCaseAffiliate { */ @Column(name = "code") private String code; + /** + * 申请人联系电话 + */ + @Column(name = "application_phone") + private String applicationPhone; + /** + * 申请人邮箱 + */ + @Column(name = "application_email") + private String applicationEmail; /** * 法定代表人 diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseMediator.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseMediator.java index 9beff43..5f63c11 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseMediator.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/entity/mscase/MsCaseMediator.java @@ -8,6 +8,7 @@ import javax.persistence.Column; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; +import java.io.Serializable; /** * 案件预约表 @@ -16,7 +17,8 @@ import javax.persistence.Table; @Setter @ToString @Table(name = "ms_case_mediator") -public class MsCaseMediator { +public class MsCaseMediator implements Serializable { + private static final long serialVersionUID = 1L; @Id @GeneratedValue(generator = "JDBC") private Long id; diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/BookingVO.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/BookingVO.java index 4c0f7d5..21546f1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/BookingVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/BookingVO.java @@ -1,6 +1,5 @@ package com.ruoyi.wisdomarbitrate.domain.vo.mscase; -import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseMediator; import lombok.Data; @@ -15,10 +14,6 @@ import java.util.List; */ @Data public class BookingVO { - /** - * 申请人调解员列表 - */ - private List userList; /** * 申请人调解员列表 */ 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 1cb9511..b883a18 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 @@ -1,9 +1,12 @@ package com.ruoyi.wisdomarbitrate.domain.vo.mscase; +import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + @NoArgsConstructor @AllArgsConstructor @Data @@ -80,5 +83,9 @@ public class MsCaseApplicationReq { * 是否小程序,1-是 */ private Integer miniProgressFlag ; + /** + * 附件 + */ + private List attachList; } \ 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 59f81bc..d00ec2e 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 @@ -51,10 +51,6 @@ public interface MsCaseApplicationMapper extends Mapper { " " + "" + " AND c.case_num = #{req.caseNum} " + - " " + - - "" + - " AND a.application_id = #{req.applicationId} " + " " + "" + " AND a.respondent_identity_num = #{req.respondentIdentityNum} " + @@ -90,9 +86,6 @@ public interface MsCaseApplicationMapper extends Mapper { " " + "" + " AND c1.case_num = #{req.caseNum} " + - " " + - "" + - " AND a1.application_id = #{req.applicationId} " + " " + "" + " AND a1.respondent_identity_num = #{req.respondentIdentityNum} " + @@ -124,9 +117,6 @@ public interface MsCaseApplicationMapper extends Mapper { " " + "" + " AND c.case_num = #{req.caseNum} " + - " " + - "" + - " AND a.application_id = #{req.applicationId} " + " " + "" + " AND a.respondent_identity_num = #{req.respondentIdentityNum} " + diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/dept/impl/DeptIdentifyServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/dept/impl/DeptIdentifyServiceImpl.java index 8802715..6f3fd65 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/dept/impl/DeptIdentifyServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/dept/impl/DeptIdentifyServiceImpl.java @@ -12,6 +12,7 @@ import com.ruoyi.common.core.domain.entity.EsignHttpResponse; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.enums.AnnexTypeEnum; import com.ruoyi.common.exception.EsignDemoException; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SealUtil; @@ -248,7 +249,7 @@ public class DeptIdentifyServiceImpl implements IDeptIdentifyService { boolean downLoadFile = FileTransformation.downLoadFileByUrl(sealImageDownloadUrl, resultFilePath); if (downLoadFile) { MsCaseAttach caseAttach = new MsCaseAttach(); - caseAttach.setAnnexType(10); //10代表印章图片 + caseAttach.setAnnexType(AnnexTypeEnum.SEAL_PICTURE.getCode()); //10代表印章图片 caseAttach.setAnnexPath(savePath); caseAttach.setAnnexName(saveName); int i1 = msCaseAttachMapper.save(caseAttach); diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsCaseApplicationService.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsCaseApplicationService.java index dc49996..61e52cb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsCaseApplicationService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/MsCaseApplicationService.java @@ -1,6 +1,7 @@ package com.ruoyi.wisdomarbitrate.service.mscase; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.exception.EsignDemoException; import com.ruoyi.system.domain.entity.flow.MsCaseFlow; import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAffiliate; @@ -13,6 +14,7 @@ import com.ruoyi.wisdomarbitrate.domain.vo.mscase.MsCaseAttachVO; import org.springframework.web.multipart.MultipartFile; import java.util.List; +import java.util.Map; /** * @Classname MsCaseApplicationService @@ -42,6 +44,13 @@ public interface MsCaseApplicationService { * @return */ int insert(MsCaseApplicationVO caseApplication); + /** + * 新增用户 + * @param affiliate + * @param agentFlag 是否代理人,0-否,1-是 + * @param roleId + */ + void insertApplicantUser( MsCaseAffiliate affiliate,boolean agentFlag, Long roleId); /** * 新增申请机构代理人 * @param affiliate @@ -165,4 +174,32 @@ public interface MsCaseApplicationService { */ AjaxResult confirmMediation(MsCaseAttachVO attach) throws EsignDemoException, InterruptedException ; + /** + * 生成调解申请书 + * @param application 案件基本信息 + * @param affiliate 案件相关人员 + * @param templatePath 模板路径 + * @param bookmarkList 标签 + * @param dictDataList 内置字段 + */ + void createMediateApplication(MsCaseApplication application, MsCaseAffiliate affiliate, String templatePath, List bookmarkList, List dictDataList, Integer templateType) ; + /** + * 案件受理 + * @param application + * @param req + * @param affiliateMap + */ + void accept(MsCaseApplication application, MsCaseApplication req, Map affiliateMap) ; + /** + * 判断申请人/被申请人是否预约 + * @param vo + * @param userIds 选择的调解员ids + */ + void isReservation( BookingVO vo, List userIds ); + /** + * 核实调解员 + * @param + * @return + */ + void verifyMediator(MsCaseApplication application,BookingVO vo); } 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 82ec091..ce772fc 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 @@ -83,6 +83,8 @@ import static com.ruoyi.common.utils.SecurityUtils.getUsername; */ @Service public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { + @Autowired + MsCaseApplicationService caseApplicationService; @Autowired MsCaseApplicationMapper msCaseApplicationMapper; @Autowired @@ -110,6 +112,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { @Autowired SysUserMapper userMapper; @Autowired + SysUserDeptMapper userDeptMapper; + @Autowired SysUserRoleMapper userRoleMapper; @Autowired FatchRuleMapper fatchRuleMapper; @@ -181,9 +185,6 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { List caseStatusNames = caseFlows.stream().map(MsCaseFlow::getCaseStatusName).collect(Collectors.toList()); for (SysRole role : roles) { if(StrUtil.isNotEmpty(role.getRoleName())&&StrUtil.equals(role.getRoleName(),"申请人")){ - if(sysUser.getDeptId()!=null) { - req.setApplicationOrganId(String.valueOf(sysUser.getDeptId())); - } req.setApplicantFlag(1); break; @@ -244,6 +245,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { if (caseApplication.getId() == null) { caseApplication.setId(IdWorkerUtil.getId()); } + // 根据角色获取案件流程 List caseFlows= selectCaseFlows(); if (CollectionUtil.isEmpty(caseFlows)) { @@ -265,20 +267,25 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { caseApplication.setUpdateBy(SecurityUtils.getUsername()); caseApplication.setVersion(1); MsCaseAffiliate affiliate = caseApplication.getAffiliate(); + affiliate.setCaseAppliId(caseApplication.getId()); // 保存案件基本信息 if (msCaseApplicationMapper.insertSelective(caseApplication) > 0) { List caseAttachList = caseApplication.getCaseAttachList(); // 保存案件相关人员 - if (affiliate != null) { // 设置申请机构 if (StrUtil.isNotEmpty(affiliate.getApplicationName())&&affiliate.getOrganizeFlag()==1) { // 组装申请机构 - insertDept(affiliate); - // 新增申请机构代理人 - insertAgentUser(affiliate); + // insertDept(affiliate); + // 新增申请机构和代理人 + caseApplicationService.insertAgentUser(affiliate); }else if(StrUtil.isNotEmpty(affiliate.getApplicationName())&&affiliate.getOrganizeFlag()==0){ - // 申请人为自然人 - // + // todo 申请人为自然人,如果系统不存在申请人和代理人用户,分别新增用户,新增完用户需要发送短信 + // 查询申请人角色id + Long roleId = roleMapper.selectRoleIdByName("申请人"); + caseApplicationService.insertApplicantUser(affiliate,false,roleId); + caseApplicationService.insertApplicantUser(affiliate,true,roleId); + + } // 压缩包导入,则根据身份证号获取性别和出生日期 String identityNum = affiliate.getRespondentIdentityNum(); @@ -286,18 +293,20 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { identityNum = identityNum.replace("\n", ""); Map identityNumMap = IdCardUtils.getBirAgeSex(identityNum); - String birthday = identityNumMap.get("birthday"); - if (StrUtil.isNotEmpty(birthday)) { - Date birthdayDate = null; - try { - birthdayDate = yyyymmddFormat.parse(birthday); - } catch (Exception e) { - e.printStackTrace(); + if (identityNumMap != null) { + String birthday = identityNumMap.get("birthday"); + if (StrUtil.isNotEmpty(birthday)) { + Date birthdayDate = null; + try { + birthdayDate = yyyymmddFormat.parse(birthday); + } catch (Exception e) { + e.printStackTrace(); + } + affiliate.setRespondentBirth(birthdayDate); } - affiliate.setRespondentBirth(birthdayDate); + //从身份证抓取性别 + affiliate.setRespondentSex(identityNumMap.get("sexCode")); } - //从身份证抓取性别 - affiliate.setRespondentSex(identityNumMap.get("sexCode")); } if (StrUtil.isNotEmpty(affiliate.getAgentEmail())) { affiliate.setAgentEmail(affiliate.getAgentEmail().replace("\n", "").replaceAll("\\s", "")); @@ -305,7 +314,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { if (StrUtil.isNotEmpty(affiliate.getRespondentEmail())) { affiliate.setRespondentEmail(affiliate.getRespondentEmail().replace("\n", "").replaceAll("\\s", "")); } - affiliate.setCaseAppliId(caseApplication.getId()); + msCaseAffiliateMapper.insert(affiliate); // 查询调解申请书模板id TemplateManage templateManage=templateManageMapper.selectByType(2); @@ -321,10 +330,11 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { } // 生成调解申请书 req.setTemplateId(String.valueOf(templateManage.getId())); - generateApplication(req); + // todo 部署放开 + // caseApplicationService.generateApplication(req); } - } + // 保存案件附件 if (CollectionUtil.isNotEmpty(caseAttachList)) { @@ -354,6 +364,65 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { return 0; } + /** + * 新增用户 + * @param affiliate + * @param agentFlag 是否代理人,0-否,1-是 + * @param roleId + */ + @Transactional + public void insertApplicantUser( MsCaseAffiliate affiliate,boolean agentFlag, Long roleId) { + String phone=""; + String name=""; + if(agentFlag){ + // 代理人 + phone=affiliate.getContactTelphoneAgent(); + name=affiliate.getNameAgent(); + + }else { + // 申请人 + phone=affiliate.getApplicationPhone(); + name=affiliate.getApplicationName(); + } + if(StrUtil.isNotEmpty(phone) && StrUtil.isNotEmpty(name)){ + // 查询用户是否存在 + SysUser sysUser = sysUserMapper.selectUserByUserName(name); + if(sysUser==null){ + // 新增用户 + sysUser = new SysUser(); + sysUser.setUserName(phone); + sysUser.setNickName(name); + sysUser.setPhonenumber(phone); + sysUser.setPassword(SecurityUtils.encryptPassword("abc123456")); + sysUser.setCreateBy(SecurityUtils.getUsername()); + userMapper.insertUser(sysUser); + userRoleMapper.insertUserRole(sysUser.getUserId(), roleId); + // 发送短信 2064355 调解系统自动创建用户短信通知 尊敬的用户,您的案件已经创建,请使用账号为{1},密码为{2}登录调解系统,请知晓,如非本人操作,请忽略本短信。 + Boolean smsFlag = SmsUtils.sendSms(affiliate.getCaseAppliId(), "2064355", phone, new String[]{phone, "abc123456"}); + + }else { + // 用户不为空,查询角色是否为申请人 + if (CollectionUtil.isNotEmpty(sysUser.getRoles())) { + List longList = sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()); + if (!longList.contains(roleId)) { + userRoleMapper.insertUserRole(sysUser.getUserId(), roleId); + } + } else { + userRoleMapper.insertUserRole(sysUser.getUserId(), roleId); + } + + } + if(!agentFlag){ + // 自然人,将用户id设为申请人id + affiliate.setApplicationId(String.valueOf(sysUser.getUserId())); + affiliate.setApplicationName(sysUser.getNickName()); + + } + + + } + } + /** * 查询案件流程 * @return @@ -415,9 +484,19 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { // 设置申请人 if (StrUtil.isNotEmpty(affiliate.getApplicationName())&&affiliate.getOrganizeFlag()==1) { // 组装申请机构 - insertDept(affiliate); + // insertDept(affiliate); // 新增申请机构代理人 - insertAgentUser(affiliate); + caseApplicationService.insertAgentUser(affiliate); + }else if(StrUtil.isNotEmpty(affiliate.getApplicationName())&&affiliate.getOrganizeFlag()==0){ + // todo 申请人为自然人,如果系统不存在申请人和代理人用户,分别新增用户,新增完用户需要发送短信 + // 查询申请人角色id + Long roleId = roleMapper.selectRoleIdByName("申请人"); + caseApplicationService.insertApplicantUser(affiliate,false,roleId); + caseApplicationService.insertApplicantUser(affiliate,true,roleId); + + } + if (StrUtil.isNotEmpty(affiliate.getRespondentEmail())) { + affiliate.setRespondentEmail(affiliate.getRespondentEmail().replace("\n", "").replaceAll("\\s", "")); } msCaseAffiliateMapper.updateByPrimaryKeySelective(affiliate); } @@ -558,7 +637,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { caseApplicationVO.setCaseAttachList(attachList); caseApplicationVO.setColumnValueList(columnValueList); caseApplicationVO.setImportFlag(true); - insert(caseApplicationVO); + caseApplicationService.insert(caseApplicationVO); caseCount++; } @@ -567,21 +646,6 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { } if(caseCount>0) { - -// // 查询调解申请书模板id -// TemplateManage templateManage=templateManageMapper.selectByType(2); -// if(templateManage!=null) { -// List caseFlows = selectCaseFlows(); -// // 批量生成调解申请书 -// MsCaseApplicationReq req = new MsCaseApplicationReq(); -// if (CollectionUtil.isNotEmpty(caseFlows)) { -// MsCaseFlow caseFlow = caseFlows.get(0); -// req.setCaseFlowId(caseFlow.getId()); -// req.setBatchNumber(batchNumber); -// req.setTemplateId(String.valueOf(templateManage.getId())); -// generateApplication(req); -// } -// } return AjaxResult.success(); }else { return AjaxResult.error("请检查压缩包!"); @@ -647,7 +711,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { if(affiliate==null){ continue; } - createMediateApplication(application, affiliate, templatePath, bookmarkList,dictDataList,req.getTemplateType()); + caseApplicationService.createMediateApplication(application, affiliate, templatePath, bookmarkList,dictDataList,req.getTemplateType()); } }else { @@ -660,7 +724,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { throw new ServiceException("该案件不存在"); } - createMediateApplication(application, caseAffiliate, templatePath, bookmarkList,dictDataList,req.getTemplateType()); + caseApplicationService.createMediateApplication(application, caseAffiliate, templatePath, bookmarkList,dictDataList,req.getTemplateType()); } @@ -690,6 +754,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { * @param req * @return */ + @Transactional @Override public AjaxResult batchUpdateAttach(MsCaseApplicationVO req) { for (MsCaseAttach attach : req.getCaseAttachList()) { @@ -706,6 +771,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { * @param id * @return */ + @Transactional @Override public AjaxResult batchUpload(MultipartFile[] files, Integer annexType, Long id) { List successList = new ArrayList<>(); @@ -745,6 +811,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { * @param req * @return */ + @Transactional @Override public AjaxResult accept(MsCaseApplication req) { if (StrUtil.isNotEmpty(req.getBatchNumber())) { @@ -762,7 +829,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { } Map affiliateMap = affiliateList.stream().collect(Collectors.toMap(MsCaseAffiliate::getCaseAppliId, Function.identity())); for (MsCaseApplication application : applicationList) { - accept(application,req,affiliateMap); + caseApplicationService.accept(application,req,affiliateMap); } } else { @@ -777,7 +844,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { application.setLockStatus(YesOrNoEnum.YES.getCode()); Map affiliateMap=new HashMap<>(); affiliateMap.put(req.getId(),caseAffiliate); - accept(application,req,affiliateMap); + caseApplicationService.accept(application,req,affiliateMap); } return AjaxResult.success("受理成功"); @@ -788,7 +855,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { * @param req * @param affiliateMap */ - private void accept(MsCaseApplication application, MsCaseApplication req, Map affiliateMap) { + @Transactional + public void accept(MsCaseApplication application, MsCaseApplication req, Map affiliateMap) { application.setPaperFlag(req.getPaperFlag()); application.setArbitrateConfirm(req.getArbitrateConfirm()); application.setMediationMethod(req.getMediationMethod()); @@ -796,7 +864,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { application.setUpdateTime(new Date()); application.setBatchNumber(null); msCaseApplicationMapper.updateByPrimaryKeySelective(application); - MsCaseFlow caseFlow = nextFlow(application.getId(), req.getCaseFlowId(),req.getLockStatus()); + MsCaseFlow caseFlow = caseApplicationService.nextFlow(application.getId(), req.getCaseFlowId(),req.getLockStatus()); // 给申请人被申请人发送短信 if (affiliateMap.containsKey(application.getId())) { MsCaseAffiliate affiliate = affiliateMap.get(application.getId()); @@ -846,12 +914,12 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { return AjaxResult.error("该批次号下未找到案件"); } for (MsCaseApplication application : list) { - MsCaseFlow caseFlow = nextFlow(application.getId(), req.getCaseFlowId(), YesOrNoEnum.NO.getCode()); + MsCaseFlow caseFlow = caseApplicationService.nextFlow(application.getId(), req.getCaseFlowId(), YesOrNoEnum.NO.getCode()); // todo 发送短信 // CaseLogUtils.insertCaseLog(application.getId(), caseFlow.getNodeId(), caseFlow.getCaseStatusName(), "提交成功"); } }else { - MsCaseFlow caseFlow = nextFlow(req.getId(), req.getCaseFlowId(), YesOrNoEnum.NO.getCode()); + MsCaseFlow caseFlow = caseApplicationService.nextFlow(req.getId(), req.getCaseFlowId(), YesOrNoEnum.NO.getCode()); // todo 发送短信 // CaseLogUtils.insertCaseLog(req.getId(), caseFlow.getNodeId(), caseFlow.getCaseStatusName(), "提交成功"); @@ -927,13 +995,13 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { msCaseMediatorMapper.deleteByExample(mediatorExample); // 获取选择的调解员id - List userIds = vo.getUserList().stream().map(SysUser::getUserId).collect(Collectors.toList()); + List userIds = vo.getMediatorList().stream().map(MsCaseMediator::getMediatorId).collect(Collectors.toList()); // 新增案件预约表 - for (SysUser sysUser : vo.getUserList()) { + for (MsCaseMediator sysUser : vo.getMediatorList()) { MsCaseMediator mediator = new MsCaseMediator(); mediator.setCaseAppliId(vo.getId()); - mediator.setMediatorId(sysUser.getUserId()); - mediator.setMediatorName(sysUser.getNickName()); + mediator.setMediatorId(sysUser.getMediatorId()); + mediator.setMediatorName(sysUser.getMediatorName()); mediator.setType(miniProgressFlag); msCaseMediatorMapper.insert(mediator); } @@ -946,13 +1014,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { if (StrUtil.isEmpty(msCaseAffiliate.getRespondentIdentityNum())) { return AjaxResult.error("被申请人身份证为空"); } - - // SysUser user = userMapper.selectUserByIdCard(msCaseAffiliate.getRespondentIdentityNum()); - // 被申请人存在 - // if (user != null) { // 判断被申请人信息查询案件预约表 isReservation( vo,userIds); - // } } else { // 被申请人预约 @@ -961,12 +1024,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { if (StrUtil.isEmpty(msCaseAffiliate.getContactTelphoneAgent())) { return AjaxResult.error("申请代理人手机号为空"); } - - // SysUser user = userMapper.selectUserByPhone(msCaseAffiliate.getContactTelphoneAgent()); - // if(user!=null){ - // 判断申请人是否预约 - isReservation( vo,userIds); - // } + // 判断申请人是否预约 + caseApplicationService. isReservation( vo,userIds); } return AjaxResult.success(); @@ -977,7 +1036,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { * @param vo * @param userIds 选择的调解员ids */ - private void isReservation( BookingVO vo, List userIds ) { + @Transactional + public void isReservation( BookingVO vo, List userIds ) { // 查询所有调解员 List mediatorUsers = sysUserMapper.selectUserByRole("调解员"); if (CollectionUtil.isEmpty(mediatorUsers)) { @@ -1055,32 +1115,13 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { } } - /** - * 设置调解员调解时间 - * @param application - * @param vo - */ -// private void setMediatorAndDate(MsCaseApplication application, BookingVO vo) { -// if(CollectionUtil.isNotEmpty(vo.getUserList())) { -// List userList = vo.getUserList(); -// List userIds = userList.stream().map(SysUser::getUserId).collect(Collectors.toList()); -// List userNames = userList.stream().map(SysUser::getUserName).collect(Collectors.toList()); -// String mediatorIds = StrUtil.join(",", userIds); -// String mediatorNames = StrUtil.join(",", userNames); -// application.setMediatorId(mediatorIds); -// application.setMediatorName(mediatorNames); -// } -// if(CollectionUtil.isNotEmpty( vo.getHerDates())) { -// String herDates = StrUtil.join(",", vo.getHerDates()); -// application.setHearDate(herDates); -// } -// } /** * 核实调解员 * @param vo * @return */ + @Transactional @Override public AjaxResult verifyMediator(BookingVO vo) { if(StrUtil.isNotEmpty(vo.getBatchNumber())){ @@ -1099,12 +1140,39 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { } return AjaxResult.success(); } + /** + * 核实调解员 + * @param + * @return + */ + @Transactional + public void verifyMediator(MsCaseApplication application,BookingVO vo) { + MsCaseFlow nextFlow = caseFlowMapper.nextFlow(vo.getCaseFlowId()); + if (nextFlow == null) { + throw new ServiceException("未找到下一个流程节点"); + } + if(vo.getMediatorId()!=null) { + // setMediatorAndDate(application,vo); + application.setMediatorId(vo.getMediatorId()); + application.setMediatorName(vo.getMediatorName()); + } + if(CollectionUtil.isNotEmpty(vo.getHerDates())){ + application.setHearDate(vo.getHerDates().get(0)); + } + application.setCaseFlowId(nextFlow.getNodeId()); + application.setCaseStatusName(nextFlow.getCaseStatusName()); + msCaseApplicationMapper.updateByPrimaryKeySelective(application); + // todo 发送短信 + // 新增日志 + CaseLogUtils.insertCaseLog(application.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(), ""); + } /** * 查询预约信息 * @param id * @return */ + @Transactional @Override public AjaxResult selectReservation(Long id) { // 查询案件主表 @@ -1122,43 +1190,9 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { return AjaxResult.success(result); } Map> mediatorMap = msCaseMediators.stream().collect(Collectors.groupingBy(MsCaseMediator::getType)); - // 申请人 + // todo 申请人 result.setMediatorList(mediatorMap.get(MediatorTypeEnum.PC.getCode())); result.setResMediatorList(mediatorMap.get(MediatorTypeEnum.MI_NI_PROGRESS.getCode())); - - // 查询用户 -// SysUser user = userMapper.selectUserById(Long.valueOf(msCaseMediator.getMediatorId())); -// if(user==null){ -// return AjaxResult.error("调解员已被删除"); -// } -// // 查询待办数量 -// List mediatorIds = new ArrayList<>(); -// mediatorIds.add(user.getUserId()); -// Map> caseMap=null; -// List caseApplicationList = msCaseApplicationMapper.listMediator(mediatorIds); -// if (CollectionUtil.isNotEmpty(caseApplicationList)) { -// caseMap = caseApplicationList.stream().collect(Collectors.groupingBy(MsCaseApplication::getMediatorId, Collectors.toList())); -// -// } -// MediatorVO mediatorVO = new MediatorVO(); -// mediatorVO.setMediatorId(user.getUserId()); -// mediatorVO.setMediatorName(user.getNickName()); -// mediatorVO.setSpecialty(user.getSpecialty()); -// if(caseMap==null){ -// mediatorVO.setTodoAmount(0L); -// mediatorVO.setCompleteAmount(0L); -// } -// -// else if(caseMap.containsKey(String.valueOf(user.getUserId()))) { -// List applications = caseMap.get(String.valueOf(user.getUserId())); -// // 已办案件 -// long count = applications.stream().filter(caseApplication -> !caseApplication.getCaseStatusName().equals("结束")).count(); -// mediatorVO.setTodoAmount(applications.size()-count); -// mediatorVO.setCompleteAmount(count); -// } - - - return AjaxResult.success(result); } @@ -1170,36 +1204,50 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { @Transactional @Override public AjaxResult mediation(MsCaseApplicationReq req) { - String templateId=null; - // 批量 - if(StrUtil.isNotEmpty(req.getBatchNumber())){ - // 查询调解书模板是否存在 - Example example = new Example(MsCaseApplication.class); - Example.Criteria criteria = example.createCriteria(); - criteria.andEqualTo("batchNumber", req.getBatchNumber()); - criteria.andIsNotNull("templateId"); - MsCaseApplication caseApplication = msCaseApplicationMapper.selectOneByExample(example); - if(caseApplication==null||caseApplication.getTemplateId()==null){ + // 查询案件是否存在 + MsCaseApplication application = msCaseApplicationMapper.selectByPrimaryKey(req.getId()); + if (application == null) { + return AjaxResult.error("未找到案件"); + } + if (StrUtil.isEmpty(application.getMediationMethod())) { + return AjaxResult.error("未选择调解方式"); + } + if (application.getMediationMethod().equals("1")) { + // 线上调解 + if (application.getTemplateId() == null) { return AjaxResult.error("未找到模板"); } - templateId= String.valueOf(caseApplication.getTemplateId()); + String templateId = String.valueOf(application.getTemplateId()); + req.setTemplateId(templateId); + req.setTemplateType(1); + AjaxResult result = generateApplication(req); + if (result != null && result.isSuccess()) { + return result; + } + } else { + // 线下调解 + List attachList = req.getAttachList(); + if(CollectionUtil.isEmpty(attachList)){ + return AjaxResult.error("请上传调解资料"); + } + for (MsCaseAttach attach : attachList) { + attach.setCaseAppliId(req.getId()); + } + msCaseAttachMapper.batchSave(attachList); + // 修改案件状态为待送达 + Example flowExample = new Example(MsCaseFlow.class); + flowExample.createCriteria().andEqualTo("caseStatusName", "待送达"); + MsCaseFlow caseFlow = caseFlowMapper.selectOneByExample(flowExample); + if(caseFlow != null){ + application.setCaseFlowId(caseFlow.getId()); + application.setCaseStatusName(caseFlow.getCaseStatusName()); + msCaseApplicationMapper.updateByPrimaryKey(application); + } + return AjaxResult.success(); + } - }else { - // 单独生成 - // 查询调解书模板是否存在 - MsCaseApplication application = msCaseApplicationMapper.selectByPrimaryKey(req.getId()); - if(application==null||application.getTemplateId()==null){ - return AjaxResult.error("未找到模板"); - } - templateId= String.valueOf(application.getTemplateId()); - } - req.setTemplateId(templateId); - req.setTemplateType(1); - AjaxResult result = generateApplication(req); - if(result!=null && result.isSuccess()){ - return result; - } - return AjaxResult.error("生成失败"); + + return AjaxResult.error(); } /** @@ -1232,7 +1280,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { } // todo 发送短信 // 更新流程节点 - nextFlow(attach.getCaseAppliId(),attach.getCaseFlowId(),YesOrNoEnum.YES.getCode()); + caseApplicationService.nextFlow(attach.getCaseAppliId(),attach.getCaseFlowId(),YesOrNoEnum.YES.getCode()); Long id = attach.getCaseAppliId(); MsCaseApplication caseApplication = msCaseApplicationMapper.selectByPrimaryKey(id); @@ -1901,29 +1949,6 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { } - /** - * 核实调解员 - * @param - * @return - */ - private void verifyMediator(MsCaseApplication application,BookingVO vo) { - MsCaseFlow nextFlow = caseFlowMapper.nextFlow(vo.getCaseFlowId()); - if (nextFlow == null) { - throw new ServiceException("未找到下一个流程节点"); - } - // setMediatorAndDate(application,vo); - application.setMediatorId(vo.getMediatorId()); - application.setMediatorName(vo.getMediatorName()); - application.setCaseFlowId(nextFlow.getNodeId()); - application.setCaseStatusName(nextFlow.getCaseStatusName()); - msCaseApplicationMapper.updateByPrimaryKeySelective(application); - // todo 发送短信 - // 新增日志 - CaseLogUtils.insertCaseLog(application.getId(), nextFlow.getNodeId(), nextFlow.getCaseStatusName(), ""); - - } - - /** * 流向下一个流程节点 @@ -1932,6 +1957,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { * @param lockStatus '是否锁定,0-否,1-是',单独操作案件时需要锁定 * @return */ + @Transactional @Override public MsCaseFlow nextFlow(Long caseId,Integer caseFlowId,Integer lockStatus) { // 查询当前流程节点 @@ -1964,7 +1990,8 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { * @param bookmarkList 标签 * @param dictDataList 内置字段 */ - private void createMediateApplication(MsCaseApplication application, MsCaseAffiliate affiliate, String templatePath, List bookmarkList, List dictDataList,Integer templateType) { + @Transactional + public void createMediateApplication(MsCaseApplication application, MsCaseAffiliate affiliate, String templatePath, List bookmarkList, List dictDataList,Integer templateType) { // 申请书需要的字段和内容,valueMap<占位符,替换的值> Map valueMap = new HashMap<>(); for (SysDictData dictData : dictDataList) { @@ -2018,7 +2045,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { msCaseAttachMapper.save(caseAttach); // 生成调解书成功,需要更新流程节点 if (templateType!=null&&templateType==1) { - nextFlow(application.getId(), application.getCaseFlowId(), application.getLockStatus()); + caseApplicationService.nextFlow(application.getId(), application.getCaseFlowId(), application.getLockStatus()); // todo 发送短信 } } @@ -2086,16 +2113,10 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { continue; } // 上传 - // String filePath = RuoYiConfig.getUploadPath(); MsCaseAttach caseAttach = new MsCaseAttach(); caseAttach.setCaseAppliId(caseApplication.getId()); caseAttach.setAnnexPath(fileUrl.replace(RuoYiConfig.getProfile(),Constants.RESOURCE_PREFIX)); caseAttach.setAnnexName(entry.getKey()); - // todo -// if (StrUtil.isNotEmpty(fileUrl)) { -// String fileName = fileUrl.replace(filePath, "/profile/upload"); -// caseAttach.setAnnexName(entry.getKey()); -// } // 申请人提供的证据材料 caseAttach.setAnnexType(AnnexTypeEnum.APPLICATION_EVIDENCE.getCode()); attachList.add(caseAttach); @@ -2263,37 +2284,79 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { agentUser.setNickName(affiliate.getNameAgent()); agentUser.setPhonenumber(affiliate.getContactTelphoneAgent()); agentUser.setPassword(SecurityUtils.encryptPassword("abc123456")); - agentUser.setDeptId(Long.valueOf(affiliate.getApplicationId())); + // agentUser.setDeptId(Long.valueOf(affiliate.getApplicationId())); userMapper.insertUser(agentUser); userRoleMapper.insertUserRole(agentUser.getUserId(), roleId); // 新增部门用户关联表 -// sysUserMapper.insertUser() - } else if (null == agentUser.getDeptId() ) { - // todo 未关联部门,关联部门 - agentUser.setDeptId(Long.valueOf(affiliate.getApplicationId())); - userMapper.updateUser(agentUser); - }else if (null != agentUser.getDeptId() && !String.valueOf(agentUser.getDeptId()).equals(affiliate.getApplicationId())) { - if (null != agentUser.getDept() && StrUtil.isNotEmpty(agentUser.getDept().getDeptName())) { - throw new ServiceException("该申请代理人已在【" + agentUser.getDept().getDeptName() + "】申请机构下存在,请检查填写信息是否正确"); - } else { - throw new ServiceException("该申请代理人已存在,与申请机构不匹配,请检查填写信息是否正确"); - } - } else if (null != agentUser.getDeptId() && String.valueOf(agentUser.getDeptId()).equals(affiliate.getApplicationId())) { - // 同步用户表和案件关联人表的手机号和名称 - affiliate.setContactTelphoneAgent(StrUtil.isNotEmpty(agentUser.getPhonenumber()) ? agentUser.getPhonenumber() : affiliate.getContactTelphoneAgent()); - affiliate.setNameAgent(agentUser.getNickName()); - affiliate.setAgentEmail(StrUtil.isNotEmpty(agentUser.getEmail()) ? agentUser.getEmail() : affiliate.getAgentEmail()); - List longList = new ArrayList<>(); - // 新增角色为申请人 - if (CollectionUtil.isNotEmpty(agentUser.getRoles())) { - longList = agentUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()); - if (!longList.contains(roleId)) { - userRoleMapper.insertUserRole(agentUser.getUserId(), roleId); - } - } else { - userRoleMapper.insertUserRole(agentUser.getUserId(), roleId); + SysUserDept sysUserDept = new SysUserDept(); + sysUserDept.setUserId(agentUser.getUserId()); + sysUserDept.setDeptId(Long.valueOf(affiliate.getApplicationId())); + userDeptMapper.insert(sysUserDept); + // 发送短信 2064355 调解系统自动创建用户短信通知 尊敬的用户,您的案件已经创建,请使用账号为{1},密码为{2}登录调解系统,请知晓,如非本人操作,请忽略本短信。 + Boolean smsFlag = SmsUtils.sendSms(affiliate.getCaseAppliId(), "2064355", affiliate.getContactTelphoneAgent(), new String[]{affiliate.getContactTelphoneAgent(), "abc123456"}); + } else { + // 查询所有部门 + List sysDepts = sysDeptMapper.selectDeptList(new SysDept()); + Map> deptMap=new HashMap<>(); + if(CollectionUtil.isNotEmpty(sysDepts)){ + deptMap = sysDepts.stream().collect(Collectors.groupingBy(SysDept::getDeptName)); } + if(!deptMap.containsKey(affiliate.getApplicationName())){ + // 如果不存在则新增 + SysDept dept = new SysDept(); + dept.setParentId(0L); + dept.setDeptName(affiliate.getApplicationName()); + dept.setAncestors("0"); + dept.setOrderNum(1); + dept.setStatus("0"); + dept.setDelFlag("0"); + dept.setCreateBy(getUsername()); + dept.setUpdateBy(getUsername()); + sysDeptMapper.insertDept(dept); + List depts = new ArrayList<>(); + depts.add(dept); + deptMap.put(dept.getDeptName(), depts); + affiliate.setApplicationId(String.valueOf(dept.getDeptId())); + affiliate.setApplicationName(affiliate.getApplicationName()); + }else { + // 将组织机构id设为申请人名称 + affiliate.setApplicationId(deptMap.get(affiliate.getApplicationName()).get(0).getDeptId().toString()); + affiliate.setApplicationName(affiliate.getApplicationName()); + } + // 根据userId查询部门 + List userDeptList = userDeptMapper.selectUserDeptById(agentUser.getUserId()); + if(CollectionUtil.isEmpty(userDeptList)){ + // 未关联部门,关联部门,新增部门用户关联表 + SysUserDept sysUserDept = new SysUserDept(); + sysUserDept.setUserId(agentUser.getUserId()); + sysUserDept.setDeptId(Long.valueOf(affiliate.getApplicationId())); + userDeptMapper.insert(sysUserDept); + }else { + List deptIdList = userDeptList.stream().map(SysUserDept::getDeptId).collect(Collectors.toList()); + if(!deptIdList.contains(Long.valueOf(affiliate.getApplicationId()))){ + // 未关联该部门,关联部门,新增部门用户关联表 + SysUserDept sysUserDept = new SysUserDept(); + sysUserDept.setUserId(agentUser.getUserId()); + sysUserDept.setDeptId(Long.valueOf(affiliate.getApplicationId())); + userDeptMapper.insert(sysUserDept); + // 同步用户表和案件关联人表的手机号和名称 + affiliate.setContactTelphoneAgent(StrUtil.isNotEmpty(agentUser.getPhonenumber()) ? agentUser.getPhonenumber() : affiliate.getContactTelphoneAgent()); + affiliate.setNameAgent(agentUser.getNickName()); + affiliate.setAgentEmail(StrUtil.isNotEmpty(agentUser.getEmail()) ? agentUser.getEmail() : affiliate.getAgentEmail()); + List longList = new ArrayList<>(); + // 新增角色为申请人 + if (CollectionUtil.isNotEmpty(agentUser.getRoles())) { + longList = agentUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()); + if (!longList.contains(roleId)) { + userRoleMapper.insertUserRole(agentUser.getUserId(), roleId); + } + } else { + userRoleMapper.insertUserRole(agentUser.getUserId(), roleId); + } + + } + } } } @@ -2303,7 +2366,7 @@ public class MsCaseApplicationServiceImpl implements MsCaseApplicationService { * @param affiliate */ @Transactional - void insertDept(MsCaseAffiliate affiliate) { + public void insertDept(MsCaseAffiliate affiliate) { // 查询所有的组织机构,组装成map List deptList = sysDeptMapper.selectDeptList(new SysDept()); if (CollectionUtil.isEmpty(deptList)) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/FixSelectFlowDetailUtils.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/FixSelectFlowDetailUtils.java index f516acc..d8d2430 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/FixSelectFlowDetailUtils.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/utils/FixSelectFlowDetailUtils.java @@ -5,9 +5,9 @@ import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import com.ruoyi.common.constant.CaseApplicationConstants; import com.ruoyi.common.constant.FileTransformation; import com.ruoyi.common.core.domain.entity.EsignHttpResponse; +import com.ruoyi.common.enums.AnnexTypeEnum; import com.ruoyi.common.exception.EsignDemoException; import com.ruoyi.common.utils.file.SaaSAPIFileUtils; import com.ruoyi.system.domain.entity.flow.MsCaseFlow; @@ -27,7 +27,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import tk.mybatis.mapper.entity.Example; import java.io.File; import java.io.IOException; @@ -119,7 +118,7 @@ public class FixSelectFlowDetailUtils { boolean downLoadFile = FileTransformation.downLoadFileByUrl(fileDownloadUrlnew, resultFilePath); if (downLoadFile) { MsCaseAttach caseAttach = new MsCaseAttach(); - caseAttach.setAnnexType(10); //10代表印章图片 + caseAttach.setAnnexType(AnnexTypeEnum.SEAL_PICTURE.getCode()); //10代表印章图片 caseAttach.setAnnexPath(savePath); caseAttach.setAnnexName(saveName); int i1 = caseAttachMapper.save(caseAttach); @@ -214,7 +213,7 @@ public class FixSelectFlowDetailUtils { boolean downLoadFile = FileTransformation.downLoadFileByUrl(sealImageDownloadUrl, resultFilePath); if (downLoadFile) { MsCaseAttach caseAttach = new MsCaseAttach(); - caseAttach.setAnnexType(10); //10代表印章图片 + caseAttach.setAnnexType(AnnexTypeEnum.SEAL_PICTURE.getCode()); //10代表印章图片 caseAttach.setAnnexPath(savePath); caseAttach.setAnnexName(saveName); int i1 = caseAttachMapper.save(caseAttach); diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index 1b71c1a..b5f7ba0 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -91,6 +91,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select u.dept_id from ms_sys_user_role r join ms_sys_user u on r.role_id=#{roleId} and r.user_id=u.user_id + insert into ms_sys_dept( diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserDeptMapper.xml index b786009..2215807 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserDeptMapper.xml @@ -13,14 +13,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select * from ms_sys_user_dept where user_id = #{userId} - + insert into ms_sys_user_dept( user_id, dept_id @@ -43,11 +43,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + delete from ms_sys_user_dept where user_id = #{userId} - + delete from ms_sys_user_dept where user_id in #{userId} diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 83a5b25..db6fa40 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -6,7 +6,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - @@ -25,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -50,20 +49,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select u.user_id, u.dept_id, u.user_name, u.nick_name,u.specialty, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, - d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, + select u.user_id, u.user_name, u.nick_name,u.specialty, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.id_card from ms_sys_user u - left join ms_sys_dept d on u.dept_id = d.dept_id left join ms_sys_user_role ur on u.user_id = ur.user_id left join ms_sys_role r on r.role_id = ur.role_id SELECT ud.user_id , ud.nick_name ,u.specialty,ud.phonenumber ,ud.dept_id ,d.dept_name - FROM (SELECT u.user_id , u.nick_name ,u.phonenumber ,u.dept_id + FROM (SELECT u.user_id , u.nick_name ,u.phonenumber ,ud.dept_id FROM ms_sys_user_post up left join ms_sys_user u on u.user_id = up.user_id + left join ms_sys_user_dept ud on ud.user_id = u.user_id left join ms_sys_post sp on up.post_id = sp.post_id - where sp.post_code = 'jbr') ud left join ms_sys_dept d on ud.dept_id = d.dept_id + where sp.post_code = 'jbr' and u.del_flag = '0') ud left join ms_sys_dept d on ud.dept_id = d.dept_id where d.dept_id = #{deptId} @@ -173,9 +168,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select u.*,d.dept_name,ur.role_id from ms_sys_user u - left join ms_sys_dept d on u.dept_id = d.dept_id left join ms_sys_user_role ur on u.user_id = ur.user_id left join ms_sys_role r on r.role_id = ur.role_id where u.phonenumber = #{phone} and u.del_flag = '0' and u.status='0' order by u.create_time limit 1 @@ -191,16 +185,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into ms_sys_user( user_id, - dept_id, + user_name, nick_name, id_card, @@ -216,113 +212,112 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_time )values( #{userId}, - #{deptId}, - #{userName}, - #{nickName}, - #{idCard}, - #{email}, - #{avatar}, - #{phonenumber}, - #{sex}, - #{password}, - #{status}, - #{createBy}, - #{remark}, - #{specialty}, - sysdate() - ) - - - insert into ms_sys_user( - user_id, - dept_id, - user_name, - nick_name, - id_card, - email, - avatar, - phonenumber, - sex, - password, - status, - create_by, - remark, - specialty, - create_time - )values - - ( - #{item.userId}, - #{item.deptId}, - #{item.userName}, - #{item.nickName}, - #{item.idCard}, - #{item.email}, - #{item.avatar}, - #{item.phonenumber}, - #{item.sex}, - #{item.password}, - #{item.status}, - #{item.createBy}, - #{item.remark}, - #{item.specialty}, - sysdate() - ) - ; - + + #{userName}, + #{nickName}, + #{idCard}, + #{email}, + #{avatar}, + #{phonenumber}, + #{sex}, + #{password}, + #{status}, + #{createBy}, + #{remark}, + #{specialty}, + sysdate() + ) + + + insert into ms_sys_user( + user_id, + user_name, + nick_name, + id_card, + email, + avatar, + phonenumber, + sex, + password, + status, + create_by, + remark, + specialty, + create_time + )values + + ( + #{item.userId}, + #{item.userName}, + #{item.nickName}, + #{item.idCard}, + #{item.email}, + #{item.avatar}, + #{item.phonenumber}, + #{item.sex}, + #{item.password}, + #{item.status}, + #{item.createBy}, + #{item.remark}, + #{item.specialty}, + sysdate() + ) + ; + - - 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}, - update_time = sysdate() - - where user_id = #{userId} - - - - update ms_sys_user set avatar = #{avatar} where user_name = #{userName} - - - - update ms_sys_user set password = #{password} where user_name = #{userName} - - - - update ms_sys_user set del_flag = '2' where user_id = #{userId} - - - - update ms_sys_user set del_flag = '2' where user_id in - - #{userId} - - - + + update ms_sys_user + - + 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} + + + + update ms_sys_user set avatar = #{avatar} where user_name = #{userName} + + + + update ms_sys_user set password = #{password} where user_name = #{userName} + + + + update ms_sys_user set del_flag = '2' where user_id = #{userId} + + + + update ms_sys_user set del_flag = '2' where user_id in + + #{userId} + + + + + \ No newline at end of file