From 40521d51f8c083212ceb1710ab0bea570821d063 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 04 十二月 2023 09:25:43 +0800
Subject: [PATCH] 平台端调度部门下拉框

---
 ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java                         |   45 ++++++++-------
 ycl-common/src/main/resources/mapper/user/UmsDepartManageMapper.xml                       |   12 ++++
 ycl-platform/src/main/java/com/ycl/common/dingding/DingCommon.java                        |   19 ++++--
 ycl-platform/src/main/java/com/ycl/service/caseHandler/IDisposeRecordService.java         |    3 
 ycl-common/src/main/java/com/ycl/mapper/user/UmsDepartManageMapper.java                   |    3 +
 ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java               |   19 +++++-
 ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java                  |    5 +
 ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java |   10 ++-
 ycl-platform/src/main/resources/mapper/caseHandler/DisposeRecordMapper.xml                |    1 
 ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java                  |    1 
 ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java                |    2 
 ycl-common/src/main/java/com/ycl/entity/user/UmsAdmin.java                                |    1 
 ycl-platform/src/main/java/com/ycl/controller/caseHandler/DispatchHandleController.java   |    3 
 ycl-platform/src/main/java/com/ycl/service/auth/impl/AuthService.java                     |    5 +
 14 files changed, 86 insertions(+), 43 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java b/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java
index 0f7733e..e66f4a3 100644
--- a/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java
+++ b/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)));
     }
 }
\ No newline at end of file
diff --git a/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java b/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java
index 1ba37af..84a37de 100644
--- a/ycl-common/src/main/java/com/ycl/controller/user/UmsAdminController.java
+++ b/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("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
         }
diff --git a/ycl-common/src/main/java/com/ycl/entity/user/UmsAdmin.java b/ycl-common/src/main/java/com/ycl/entity/user/UmsAdmin.java
index 39505fe..49bef2d 100644
--- a/ycl-common/src/main/java/com/ycl/entity/user/UmsAdmin.java
+++ b/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 = "鐢ㄦ埛濮撳悕")
diff --git a/ycl-common/src/main/java/com/ycl/mapper/user/UmsDepartManageMapper.java b/ycl-common/src/main/java/com/ycl/mapper/user/UmsDepartManageMapper.java
index c26637d..2c2b54a 100644
--- a/ycl-common/src/main/java/com/ycl/mapper/user/UmsDepartManageMapper.java
+++ b/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);
 }
diff --git a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
index b2daa9f..e151ebd 100644
--- a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsAdminServiceImpl.java
+++ b/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);
diff --git a/ycl-common/src/main/resources/mapper/user/UmsDepartManageMapper.xml b/ycl-common/src/main/resources/mapper/user/UmsDepartManageMapper.xml
index b2c0b37..31e32f7 100644
--- a/ycl-common/src/main/resources/mapper/user/UmsDepartManageMapper.xml
+++ b/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>
diff --git a/ycl-platform/src/main/java/com/ycl/common/dingding/DingCommon.java b/ycl-platform/src/main/java/com/ycl/common/dingding/DingCommon.java
index f3f58e4..0c61fef 100644
--- a/ycl-platform/src/main/java/com/ycl/common/dingding/DingCommon.java
+++ b/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);
                 //涓存椂淇濆瓨浠昏亴鐨刬ds锛堢郴缁熺殑鐢ㄦ埛浣撶郴锛�
                 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("瑙e瘑鍚庣殑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");
         }
diff --git a/ycl-platform/src/main/java/com/ycl/controller/caseHandler/DispatchHandleController.java b/ycl-platform/src/main/java/com/ycl/controller/caseHandler/DispatchHandleController.java
index 74db768..8c4cc47 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/caseHandler/DispatchHandleController.java
+++ b/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);
     }
 }
diff --git a/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java b/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java
index eeb2a40..e96e969 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/dingding/DingController.java
@@ -94,10 +94,12 @@
     @ApiOperation(value = "鏍规嵁閽夐拤鎺堟潈鐮佽幏鍙杢oken")
     @GetMapping("/dingLogin")
     public CommonResult<Map> dingLogin(@RequestParam String code) {
+        log.info("涓�閿櫥褰曞弬鏁癱ode--------------->{}",code);
         HashMap<String, Object> map = new HashMap<>();
         //鑾峰彇鐢ㄦ埛淇℃伅
         DingUserInfo dingUser = dingCommon.getDingUserInfo(code);
         //鎸塪ing鐧诲綍
+        log.info("鐢ㄦ埛淇℃伅------------------->{}",dingUser);
         String token = authService.dingLogin(dingUser);
         map.put("token", token);
         map.put("tokenHead", tokenHead);
diff --git a/ycl-platform/src/main/java/com/ycl/service/auth/impl/AuthService.java b/ycl-platform/src/main/java/com/ycl/service/auth/impl/AuthService.java
index 811aebb..c2ff7d1 100644
--- a/ycl-platform/src/main/java/com/ycl/service/auth/impl/AuthService.java
+++ b/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();
diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/IDisposeRecordService.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/IDisposeRecordService.java
index 4bd06ff..f81cc37 100644
--- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/IDisposeRecordService.java
+++ b/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);
 }
diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java
index 6d44fa3..5f11d68 100644
--- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java
+++ b/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");
     }
 }
diff --git a/ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java b/ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java
index 03f510e..cfbd562 100644
--- a/ycl-platform/src/main/java/com/ycl/timer/GetDingUserOrgTimer.java
+++ b/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();
     }
diff --git a/ycl-platform/src/main/resources/mapper/caseHandler/DisposeRecordMapper.xml b/ycl-platform/src/main/resources/mapper/caseHandler/DisposeRecordMapper.xml
index ac4ebb7..82e4f26 100644
--- a/ycl-platform/src/main/resources/mapper/caseHandler/DisposeRecordMapper.xml
+++ b/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">

--
Gitblit v1.8.0