ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java
@@ -238,9 +238,10 @@ @ApiOperation("查询部门二级") @GetMapping(value = "/query_father_children") public CommonResult search(@RequestParam Integer fatherId) { public CommonResult search(@RequestParam String fatherId) { long fatherIdLong = Long.parseLong(fatherId); return CommonResult.success(departService .list(new LambdaQueryWrapper<UmsDepart>() .eq(UmsDepart::getParentId, fatherId))); .eq(UmsDepart::getParentId, fatherIdLong))); } } ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java
@@ -85,7 +85,6 @@ String password = AesEncryptUtil.desEncrypt(umsAdminLoginParam.getPassword()); // String password = umsAdminLoginParam.getPassword(); String token = adminService.login(umsAdminLoginParam.getUsername(), password); if (token == null) { return CommonResult.validateFailed("用户名或密码错误"); } ycl-common/src/main/java/com/ycl/entity/user/UmsAdmin.java
@@ -37,6 +37,7 @@ private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) @JsonFormat(shape = JsonFormat.Shape.STRING) private Long id; @ApiModelProperty(value = "用户姓名") ycl-common/src/main/java/com/ycl/mapper/user/UmsDepartManageMapper.java
@@ -1,6 +1,7 @@ package com.ycl.mapper.user; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.entity.depart.UmsDepart; import com.ycl.entity.user.UmsDepartManage; import org.apache.ibatis.annotations.Param; @@ -21,4 +22,6 @@ void deletedByUserId(@Param("userId") long userId); List<UmsDepartManage> selectPageByUserId(@Param("userId") long userId, @Param("current") int current, @Param("pageSize") int pageSize); List<UmsDepart> selectChildrendIds(Long departId); } ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
@@ -587,10 +587,23 @@ @Override public List<UmsAdmin> getDepartUser(Long departId) { //TODO:查询二级部门及所有子级部门 List<UmsDepart> umsDeparts = umsDepartManageMapper.selectChildrendIds(departId); List<Long> parentIds = umsDeparts.stream().map(UmsDepart::getParentId).collect(Collectors.toList()); List<Long> ids = umsDeparts.stream().map(UmsDepart::getId).collect(Collectors.toList()); List<Long> departIds = new ArrayList<>(); for (Long id : ids) { if(!parentIds.contains(id)){ departIds.add(id); } } QueryWrapper<UmsDepartManage> wrapper = new QueryWrapper<>(); wrapper.lambda().eq(UmsDepartManage::getDepartId, departId); List<UmsDepartManage> list = umsDepartManageMapper.selectList(wrapper); List<Long> userIds = list.stream().map(UmsDepartManage::getUserId).collect(Collectors.toList()); wrapper.lambda().in(UmsDepartManage::getDepartId, departIds); List<UmsDepartManage> users = umsDepartManageMapper.selectList(wrapper); List<Long> userIds = users.stream().map(UmsDepartManage::getUserId).collect(Collectors.toList()); QueryWrapper<UmsAdmin> wrapperUser = new QueryWrapper<>(); wrapperUser.in("id", userIds); List<UmsAdmin> adminList = baseMapper.selectList(wrapperUser); ycl-common/src/main/resources/mapper/user/UmsDepartManageMapper.xml
@@ -34,4 +34,16 @@ where user_id=#{userId} limit #{current},#{pageSize} </select> <select id="selectChildrendIds" resultType="com.ycl.entity.depart.UmsDepart"> select * from ums_depart where id in (WITH RECURSIVE cte_dept(id) AS ( SELECT id FROM ums_depart WHERE id = #{id} UNION ALL SELECT ums_depart.id FROM ums_depart JOIN cte_dept ON ums_depart.parent_id = cte_dept.id )SELECT id FROM cte_dept) and is_deleted = 0 </select> </mapper> ycl-platform/src/main/java/com/ycl/common/dingding/DingCommon.java
@@ -312,6 +312,7 @@ //查询任职 JSONArray jobArr = getStaffAppointment(employeeCode); assert jobArr != null; log.info("任职----------------->{}",jobArr); //临时保存任职的ids(系统的用户体系) List<Long> posIds = new ArrayList<>(); //用户角色code @@ -323,15 +324,17 @@ if (isMain) { JSONObject holdapost = jobArr.getJSONObject(0); String orgCode = holdapost.getString("organizationCode"); log.info("orgCode---------------->{}",orgCode); if (StrUtil.isNotBlank(orgCode)) { JSONObject orgDetail = getOrgDetailByCode(orgCode); if (null != orgDetail) { String orgId = orgDetail.getString("organizationCode"); String orgName = orgDetail.getString("organizationName"); orgId = DingEncodeUtil.getMD5(orgId.getBytes()); // JSONObject orgDetail = getOrgDetailByCode(orgCode); // if (null != orgDetail) { // String orgId = orgDetail.getString("organizationCode"); // String orgName = orgDetail.getString("organizationName"); Long orgId = Long.parseLong(DingEncodeUtil.getMD5(orgCode.getBytes())); log.info("解密后的orgId-------------->{}",orgId); empCodeObj.put("orgId", orgId); empCodeObj.put("orgName", orgName); } // empCodeObj.put("orgName", orgName); // } } } //职位信息 @@ -366,6 +369,7 @@ //转换为实体类 DingUserInfo dingUserInfo = BeanUtil.toBean(empCodeObj, DingUserInfo.class); Long orgId = dingUserInfo.getOrgId(); log.info("最后结果的orgId----------->{}",orgId); if (ObjectUtil.isNotEmpty(orgId)) { dingUserInfo.setPosIdList(posIds); dingUserInfo.setRoleCodeList(roleCodeList); @@ -386,6 +390,7 @@ postClient.addParameter("employeeCode", empCode); String apiResult = postClient.post(); JSONObject dataObj = parsingJson(apiResult); log.info("任职------------->{}",dataObj); if (null != dataObj) { return dataObj.getJSONArray("data"); } ycl-platform/src/main/java/com/ycl/controller/caseHandler/DispatchHandleController.java
@@ -61,7 +61,6 @@ @PostMapping("/addition_dispose_result") @LogSave(operationType = "事项处置管理", contain = "案件上传处置结果") public CommonResult searchDisposeList(@RequestBody UploadDisposingResultParam uploadDisposingResultParam) { iDisposeRecordService.saveOrUpdateUpload(uploadDisposingResultParam); return CommonResult.success("add success"); return iDisposeRecordService.saveOrUpdateUpload(uploadDisposingResultParam); } } ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java
@@ -94,10 +94,12 @@ @ApiOperation(value = "根据钉钉授权码获取token") @GetMapping("/dingLogin") public CommonResult<Map> dingLogin(@RequestParam String code) { log.info("一键登录参数code--------------->{}",code); HashMap<String, Object> map = new HashMap<>(); //获取用户信息 DingUserInfo dingUser = dingCommon.getDingUserInfo(code); //按ding登录 log.info("用户信息------------------->{}",dingUser); String token = authService.dingLogin(dingUser); map.put("token", token); map.put("tokenHead", tokenHead); ycl-platform/src/main/java/com/ycl/service/auth/impl/AuthService.java
@@ -62,9 +62,10 @@ userParam.setPassword(encodePassword); //密码 userParam.setStatus(1); //状态 adminService.save(userParam); dingCommon.getEmpInfoByCode(dingUserInfo.getEmployeeCode()); DingUserInfo empInfoByCode = dingCommon.getEmpInfoByCode(dingUserInfo.getEmployeeCode()); //查询部门是否存在, UmsDepart depart = departService.getById(dingUserInfo.getOrgId()); UmsDepart depart = departService.getById(empInfoByCode.getOrgId()); log.info("部门---------------->{}",depart); //员工信息,关联组织 if (Objects.nonNull(depart)) { UmsDepartManage departManage = new UmsDepartManage(); ycl-platform/src/main/java/com/ycl/service/caseHandler/IDisposeRecordService.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.api.CommonResult; import com.ycl.dto.dispatch.UploadDisposingResultParam; import com.ycl.entity.caseHandler.DisposeRecord; import com.ycl.vo.MyBacklogVO; @@ -21,5 +22,5 @@ Page<MyBacklogVO> listMyTask(String num, Long userId, Short type, Short source, Short time, Integer current, Integer pageSize); Boolean saveOrUpdateUpload(UploadDisposingResultParam uploadDisposingResultParam); CommonResult saveOrUpdateUpload(UploadDisposingResultParam uploadDisposingResultParam); } ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.api.CommonResult; import com.ycl.bo.AdminUserDetails; import com.ycl.common.constant.BaseCaseStatus; import com.ycl.common.constant.StepName; @@ -102,7 +103,7 @@ @Override @Transactional(rollbackFor = Exception.class) public Boolean saveOrUpdateUpload(UploadDisposingResultParam uploadDisposingResultParam) { public CommonResult saveOrUpdateUpload(UploadDisposingResultParam uploadDisposingResultParam) { log.info("参数------------------>{}",uploadDisposingResultParam); if (uploadDisposingResultParam.getArrivalTime() != null) { uploadDisposingResultParam.setArrivalTime(uploadDisposingResultParam.getArrivalTime().replace("/", "-")); @@ -265,7 +266,10 @@ //设置流程环节数据 disposeRecord.setWorkflowConfigStepId(workflowConfigStep.getId()); disposeRecord.setHandlerRoleId(workflowConfigStep.getRoleId()); return baseMapper.insert(disposeRecord) == 1 ? true : false; boolean result = baseMapper.insert(disposeRecord) == 1 ? true : false; if(!result){ CommonResult.failed("已提交,请勿重复提交"); } return CommonResult.success("add success"); } } ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java
@@ -72,41 +72,43 @@ @Autowired private UmsAdminRoleRelationService umsAdminRoleRelationService; //@Scheduled(cron = "0 50 15 * * ?") //@Scheduled(cron = "0 50 14 * * ?") @Transactional(rollbackFor = Exception.class) public void run() { log.info("开始同步任务"); //获取全部部门code JSONObject topObj = dingCommon.getBookAuthority(); //顶级部门id log.info("部门code------------>{}",topObj.toJSONString()); JSONArray deptTopArr = topObj.getJSONArray("deptVisibleScopes"); List<UmsDepart> dingOrgList = dingCommon.getOrgInfo(deptTopArr); //查询数据库中的部门 List<UmsDepart> dataOrgList = umsDepartService.list(); Iterator<UmsDepart> removeIterOrg = dingOrgList.iterator(); while (removeIterOrg.hasNext()) { UmsDepart dingOrg = removeIterOrg.next(); if (dingOrg.getCode().equals(deptTopArr.getString(0))) { dingOrg.setParentId(0L); } //判断 for (UmsDepart org : dataOrgList) { if (ObjectUtil.equals(org.getId(), dingOrg.getId()) && ObjectUtil.equals(org.getDepartName(), dingOrg.getDepartName()) && ObjectUtil.equals(org.getParentId(), dingOrg.getParentId())) { removeIterOrg.remove(); if(CollectionUtils.isNotEmpty(dingOrgList)) { Iterator<UmsDepart> removeIterOrg = dingOrgList.iterator(); while (removeIterOrg.hasNext()) { UmsDepart dingOrg = removeIterOrg.next(); if (dingOrg.getCode().equals(deptTopArr.getString(0))) { dingOrg.setParentId(0L); } //判断 for (UmsDepart org : dataOrgList) { if (ObjectUtil.equals(org.getId(), dingOrg.getId()) && ObjectUtil.equals(org.getDepartName(), dingOrg.getDepartName()) && ObjectUtil.equals(org.getParentId(), dingOrg.getParentId())) { removeIterOrg.remove(); } } } //此时 dingOrgList 中剩下的就是新的组织机构了。 dingOrgList.forEach(dingOrg -> { if (dingOrg.getCode().equals(deptTopArr.getString(0))) { dingOrg.setParentId(0L); } //umsDepartService.fillPids(dingOrg); dingOrg.setStatus((short) 1); umsDepartService.saveOrUpdate(dingOrg); }); } //此时 dingOrgList 中剩下的就是新的组织机构了。 dingOrgList.forEach(dingOrg -> { if (dingOrg.getCode().equals(deptTopArr.getString(0))) { dingOrg.setParentId(0L); } //umsDepartService.fillPids(dingOrg); dingOrg.setStatus((short) 1); umsDepartService.saveOrUpdate(dingOrg); }); // log.info(TAG + "update organization size " + dingOrgList.size()); TimeInterval timer = DateUtil.timer(); /** @@ -187,6 +189,7 @@ if (CollUtil.isNotEmpty(relations)) { umsAdminRoleRelationService.saveBatch(relations, IService.DEFAULT_BATCH_SIZE); } log.info("同步任务结束"); // log.info(TAG + "update user size " + dingList.size()); // getEmployeeAvatar(); } ycl-platform/src/main/resources/mapper/caseHandler/DisposeRecordMapper.xml
@@ -103,7 +103,6 @@ ) as t order by create_time desc LIMIT #{pageIndex},#{pageSize}) nt left JOIN ums_image_resources t4 ON nt.caseId=t4.belong_to_id </select> <select id="selectMyBackListTotal" resultType="java.lang.Long">